Python 3.x Python 3除法不准确

Python 3.x Python 3除法不准确,python-3.x,Python 3.x,为什么 我想得到0.2,所以问题不是Python2到Python3 int/float分区的变化。 除了使用十进制,还有其他解决方案吗 Python 3.6.0(v3.6.0:41DF79263A1112016年12月23日08:06:12)[MSC v.1900 64位(AM D64)]在win32上您可以使用舍入(1.4/7,10)我建议查看文档,因为在双精度浮点运算(具有20位输出精度)中,1.4不是表示为1.4,而是表示为1.3999999999991118。格式化输出时,可以使用十进制

为什么

我想得到0.2,所以问题不是Python2到Python3 int/float分区的变化。 除了使用十进制,还有其他解决方案吗

Python 3.6.0(v3.6.0:41DF79263A1112016年12月23日08:06:12)[MSC v.1900 64位(AM
D64)]在win32上

您可以使用
舍入(1.4/7,10)
我建议查看文档

,因为在双精度浮点运算(具有20位输出精度)中,1.4不是表示为1.4,而是表示为
1.3999999999991118
。格式化输出时,可以使用
十进制
类型或四舍五入(
“%.1f”%1.4
“%.20f”%1.4

,这不会改变问题
0.2
在双精度浮点运算中不是十进制数0.2,而是0.200000000001110(四舍五入到20位)。我无法理解这里的问题这是二进制到十进制的表示法如果您不习惯使用浮点型数据,请更改类型。十进制也无法解决它,我需要的是值而不是字符串。>>>十进制(1.4)/7十进制('0.199999999999999873117368614')>>>十进制(1.4)/7.0十进制('0.1999999999999873117368614')>>尝试从十进制导入十进制;十进制('1.4')/7正确!谢谢@W.mann,这不限于部门<代码>>>>0.2+0.1:0.300000000004我不记得Python2.x有这样的问题必须在2.7上检查-相同
>>> 1.4 / 7
0.19999999999999998