繁体   English   中英

比较2精度浮点数和4精度十进制数的正确方法

[英]proper way to compare 2-precision floating point with a 4-precision Decimal

我遇到了一个有趣的问题,即将浮点数与小数进行比较:

>>> Decimal('1000.1000') == Decimal('1000.10')
True

>>> Decimal('1000.1000') == Decimal(1000.10)
False

2精度浮点数是从第三方来的,所以我无法手动设置其精度。 是这样从float-> str-> Decimal转换的解决方案吗?

Decimal('1000.1000') == Decimal(str(1000.10))

真烂 有没有一种规范的方法可以进行这种比较?

1000.10已经失去了精度。 根本没有办法找回它。 如果你已经知道你将如何精确需要它,你可以str它,然后就截断/轮它。

如果可能的话,请尝试始终将其保留为字符串或Decimal对象,因为一旦它变成浮点数,您就已经失去了精度。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM