Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.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/9/extjs/3.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 - Fatal编程技术网

如何在python中将两个浮点的差作为整数输出

如何在python中将两个浮点的差作为整数输出,python,Python,有没有办法将两个浮点数之间的差作为整数输出 下面是为脚本提供的三个浮点值示例,我的目标是将这些值之间的差作为整数输出,在第一个例子中,我应该得到2,其中num_two-num_one等于0.000002,但我不想要零,因为它们不重要,我可以用字符串格式来做,但我无法告诉数字有多大或有多少个零 ## example 1 num_one = 0.000012 num_two = 0.000014 ## example 2 num_0ne = 0.0123 num_tw0 = 0.013 ## e

有没有办法将两个浮点数之间的差作为整数输出

下面是为脚本提供的三个浮点值示例,我的目标是将这些值之间的差作为整数输出,在第一个例子中,我应该得到2,其中num_two-num_one等于0.000002,但我不想要零,因为它们不重要,我可以用字符串格式来做,但我无法告诉数字有多大或有多少个零

## example 1
num_one = 0.000012
num_two = 0.000014

## example 2
num_0ne = 0.0123
num_tw0 = 0.013

## example 3
num_1 = 23.32
num_2 = 23.234


print (float(num_2) - float(num_1))

## this should output 86 as an integer 
小心浮动(请参阅):

你需要精确。使用:

现在,只需将小数点向右移动(即
*10
),直到没有剩余的小数部分(
d%1==0
):

(不要害怕,循环将停止,因为开始时的小数级别不能超过
decimal.getcontext().prec
,每次迭代时小数级别都会减少)

您将获得预期的结果:

>>> d
Decimal('86.000')
>>> int(d)
86

您对十进制数字后的数字的限制是什么,例如,如果我们在执行此操作0.0000001-0.00000000001后进行转换,结果将非常大?这看起来像
>>> from decimal import Decimal
>>> n1 = Decimal("23.32")
>>> n2 = Decimal("23.234")
>>> n1, n2
(Decimal('23.32'), Decimal('23.234'))
>>> d = abs(n1-n2)
>>> d
Decimal('0.086')
>>> while d % 1: 
...     d *= 10
>>> d
Decimal('86.000')
>>> int(d)
86