Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.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/2/jsf-2/2.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计算1.0的float类型使用int()转换为零_Python - Fatal编程技术网

Python计算1.0的float类型使用int()转换为零

Python计算1.0的float类型使用int()转换为零,python,Python,我是python新手,所以我希望我在这里缺少一些类型的基本知识。我正在尝试创建一个字符串,其中我使用浮点数并用字符串替换小数点。在此过程中,我尝试调用一行代码,相当于: int(pow(10, 1)*(5.1%1))) 但如果运行此代码: x = pow(10, 1)*(5.1%1) print(x) print(type(x)) print(int(x)) print(int(1.0)) print(type(1.0)) 它返回: 1.0 <type 'float'> 0 1

我是python新手,所以我希望我在这里缺少一些类型的基本知识。我正在尝试创建一个字符串,其中我使用浮点数并用字符串替换小数点。在此过程中,我尝试调用一行代码,相当于:

int(pow(10, 1)*(5.1%1)))
但如果运行此代码:

x = pow(10, 1)*(5.1%1)
print(x)
print(type(x))
print(int(x))
print(int(1.0))
print(type(1.0))
它返回:

1.0
<type 'float'>
0
1
<type 'float'>
1.0
0
1.

我假设这里有一个类型问题,但它们都是float类型。那么为什么int(x)返回零而不是int(1.0)

由于舍入错误,您没有得到精确的1,但有点少

>>> x = pow(10, 1)*(5.1%1)
>>> print '{:.20f}'.format(x)
0.99999999999999644729
当你展示它的时候,你会得到一堆其他的东西

>>> x = pow(10, 1)*(5.1%1)
>>> print x
1.0
>>> print '{:.10f}'.format(x)
1.0000000000
要显示肯定会给出相同数字的内容(调试时稍微好一点),请习惯性地使用
repr

>>> x = pow(10, 1)*(5.1%1)
>>> print repr(x)
0.9999999999999964
>>> print 'hello {!r} world'.format(x)
hello 0.9999999999999964 world

谢谢你为我澄清这一点。我会把它收起来的。