This topic created in 5245 days ago, the information mentioned may be changed or developed.
>>> a = 0.1
>>> b = decimal.Decimal(0.1)
>>> a
0.1
>>> b
Decimal('0.1000000000000000055511151231257827021181583404541015625')
和理论是不是反了?
4 replies 1970-01-01 08:00:00 +08:00  | | 1 xiaket Jan 2, 2012 偶这儿的Python拒绝将浮点数转成Decimal:
>>> a = decimal.Decimal("0.1") >>> a Decimal('0.1')
实际上是你理解错了. |
 | | 3 xiaket Jan 3, 2012 做浮点计算需要注意在进行某些计算时可能会有比较大的问题, 一个典型的(但事实上说明不了什么问题的)例子是当a比较大时, 计算sqrt(a+1) - sqrt(a)可能得到的结果不尽如人意. 这个时候如果转成计算1/(sqrt(a) + sqrt(a+1))会有更好的结果(虽然这种转换会多做一次除法计算, 计算量大了一点点). |