|

楼主 |
发表于 2022-2-11 11:34:59
|
显示全部楼层
感谢您的回复,我受益良多。请问您:
1.Decimal("1.1")和Decimal(1.1)为什么不同?
>>> Decimal(1.1)
Decimal('1.100000000000000088817841970012523233890533447265625')
>>> Decimal('1.1')
Decimal('1.1')
所以Decimal(1.1)是得出的是实际上有误差的情况,而Decimal('1.1')是去除误差的情况么?
2.
>>> Fraction(1.1)
Fraction(2476979795053773, 2251799813685248)
>>> 2476979795053773/2251799813685248
1.1
>>> 11/10
1.1
这两个1.1是精确的么,有什么区别?
我认为,这两个1.1都不是精确的,这两个1.1结果都等于=
print(Decimal('1.100000000000000088817841970012523233890533447265625'))
只是截取的这个数前面的1.1留下来了。
1.1最精确的解是Fraction(11,10)=Fraction(Decimal('1.1')),但是还是存在一定误差,误差是不可避免的
因此1.1是无法被完全精确解出来的。若想进行浮点数运算必用到Decimal才可以,Decimal相对精准。
您觉得我说的对么?如有问题希望得到您指正。
|
|