我有一个程序需要一个浮动。比如说,这个数字是1353118103.108893381
。数字是传入的较大字符串的一部分,每个参数用空格隔开。例如,Arg1 Arg2 1353118103.108893381 Arg3
将是传递到程序中的全部内容。程序将输入存储到字符串inps
。然后我使用inps.split(' ')
将每个参数分成一个列表。在
所以我现在有了类似finput = ['Arg1', 'Arg2', '1353118103.108893381', 'Arg3']
的东西。我现在想玩玩浮点数。但是,浮点数当前是一个字符串,所以我想把它转换成一个浮点数类型。我使用rinput = float(finput[2])
。但是,当我做print "%.9f" % rinput
时,输出给我1353118103.108893394
(最后两个数字是关闭的)。你知道程序为什么这么做吗?在
谢谢!在
在浮点表示法中,每一位要么用来表示整数部分,要么用来表示数字的小数部分。整数部分(以绝对值表示)越大,表示它所需的位数就越多,因此小数所剩的位数就越少,因此可能会失去精度。在
尝试分别存储整数部分和小数部分,或使用decimal
相关问题 更多 >
编程相关推荐