Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python在十进制分隔符后显示太多数字_Python_Python 3.x - Fatal编程技术网

python在十进制分隔符后显示太多数字

python在十进制分隔符后显示太多数字,python,python-3.x,Python,Python 3.x,我试过: x=3.4 print(x-数学地板(x)) 在控制台和Jupyter笔记本中,结果都显示0.39999999999 但是,为什么不直接将0.4作为结果呢 谢谢。要获得0.4,您可以使用十进制模块: >>> import decimal >>> x = decimal.Decimal('3.4') >>> print(x - math.floor(x)) Decimal('0.4') 这实际上不是由于python,而是浮点数的实

我试过:

x=3.4

print(x-数学地板(x))

在控制台和Jupyter笔记本中,结果都显示
0.39999999999
但是,为什么不直接将
0.4
作为结果呢


谢谢。

要获得
0.4
,您可以使用
十进制
模块:

>>> import decimal 
>>> x = decimal.Decimal('3.4')
>>> print(x - math.floor(x))
Decimal('0.4')

这实际上不是由于python,而是浮点数的实现方式所固有的,例如在javascript中也会发生

这个解释应该回答你的问题:


如前所述,如果需要将其作为十进制处理,则应检查
十进制
模块,或者可以在渲染之前对最终结果进行四舍五入。

您的问题是
为什么会发生这种情况?
如何将其设置为0.4
?@Algebra8,这是
为什么会发生这种情况