我正在准备一节课(我在教),我试图预测学生可能提出的任何问题,但我遇到了一个我无法回答的问题:
如果我们有浮点数,我们为什么还要使用整数?重点是什么?
我知道(或至少我认为)浮点数占用更多内存,因为它们具有更高的准确性,但对于大多数非嵌入式应用程序的内存使用量而言,差异肯定几乎可以忽略不计。
我意识到在很多情况下我们实际上不需要浮点数,但老实说,为什么我们首先要有整数?重点是什么?没有什么是 int 可以做的,而浮点数不能。
那么他们为什么会在那里呢?
编辑:您可能会争辩说它们更容易编写(3 对 3.0),但您可以将所有数字默认为浮点数,因此 3 将被视为与 3.0 相同。 为什么要做成不同的类型?
最佳答案
在许多情况下,浮点数是近似值。一些整数(和小数)可以用 float
精确表示。 ,但大多数不能。见 Floating Point Arithmetic: Issues and Limitations .
>>> a = 1000000000000000000000000000
>>> a+1 == a
False
>>> a = 1000000000000000000000000000.0
>>> a+1 == a
True
由于浮点数的这种近似性质,一些计算可能会产生意想不到的结果(这与问题没有直接关系,但它很好地说明了这一点):
>>> sum(1.1 for _ in range(9))
9.899999999999999
例如,当您处理货币计算时,最好使用整数,或者(如果速度不是问题)
decimal
module .
关于python - 为什么我应该使用整数而不是 float ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20452189/