none
c# 中 double型的两个奇特数字 求解答 RRS feed

  • 问题

  • 近日在系统中发现一笔比较特殊的交易,查询金额后为4.09元。但是实际情况中不可能出现4.09元的情况,金额应该为:4.1元。

    于是模拟测试发现一个相当奇特的问题:


     double a = 4.1;
     double b = a * 100;
     Int16 ab = (Int16)(b);

    当a=4.1时,b=409.99999999999994.

    当a=5.1时,b=509.99999999999994.

    当a为其它数时,结果都正确。

    求解这是什么问题导致的?


    2013年7月17日 4:27

答案