对于财务计算,请使用Decimal
根据IEEE 754 Floats总是二进制,只有新标准IEEE 754R定义了十进制格式.许多小数二进制部分永远不能等于精确的十进制表示.任何二进制数都可以写成m/2 ^ n(m,n正整数),任何十进制数都可以写为m /(2 ^ n*5 ^ n).由于二进制数缺少素数因子5,所有二进制数可以用小数精确表示,但反之则不然.
0.3 = 3/(2^1 * 5^1) = 0.3
0.3 = [0.25/0.5] [0.25/0.375] [0.25/3.125] [0.2825/3.125]
1/4 1/8 1/16 1/32
Run Code Online (Sandbox Code Playgroud)
因此对于财务计算,使用Decimal而不是FLOAT
归档时间: |
|
查看次数: |
13042 次 |
最近记录: |