将浮点数舍入到最近的整数?

时间:2013-06-17 07:00:54

标签: python floating-point integer rounding

正如标题所示,我想取一个浮点数并将其向下舍入到最接近的整数。但是,如果它不是一个整体,我总是想要舍入变量,无论它与下一个整数的接近程度如何。有没有办法做到这一点?

12 个答案:

答案 0 :(得分:124)

简单

print int(x)

也可以。

答案 1 :(得分:62)

其中一项应该有效:

import math
math.trunc(1.5)
> 1
math.trunc(-1.5)
> -1
math.floor(1.5)
> 1
math.floor(-1.5)
> -2

答案 2 :(得分:25)

EditText

//运算符返回除法的最低点。由于除以1不会改变您的数字,这相当于楼层,但不需要导入。 注:
1)返回浮点数
2)这轮向-∞

答案 3 :(得分:24)

我认为你需要一个地板功能:

math.floor(x)

答案 4 :(得分:24)

要获得浮点结果,只需使用:

round(x-0.5)

它也适用于负数。

答案 5 :(得分:6)

如果您不想导入数学,可以使用:

int(round(x))

这是一份文件:

>>> help(round)
Help on built-in function round in module __builtin__:

round(...)
    round(number[, ndigits]) -> floating point number

    Round a number to a given precision in decimal digits (default 0 digits).
    This always returns a floating point number.  Precision may be negative.

答案 6 :(得分:5)

很多人都说要使用:

        int(x)

这对大多数情况都适用,但有一点问题。如果OP的结果是:

     x = 1.9999999999999999

它会转到

     x = 2
在16日9之后,它将会回合。如果你确定你永远不会遇到这样的事情,这不是什么大问题。但要记住这一点。

答案 7 :(得分:2)

如果您使用numpy,您可以使用以下解决方案,该解决方案也适用于负数(它也适用于数组)

round_down([-1.1, -1.5, -1.6, 0, 1.1, 1.5, 1.6])
> array([-2., -2., -2.,  0.,  1.,  1.,  1.])
math

我认为如果您只使用numpy模块而不是 var sigImg = win.toImage().media; var filename = (Ti.App.currentWorkOrderId + "_signature.png"); var img = Titanium.Filesystem.getFile(Titanium.Filesystem.applicationDataDirectory,filename); if(img.exists){ img.deleteFile(); } img.write(sigImg); 模块,它也会有用。

答案 8 :(得分:1)

不知道你是否解决了这个问题,但我只是偶然发现了这个问题。如果你想摆脱小数点,你可以使用int(x),它将消除所有十进制数字。没有必要使用round(x)。

答案 9 :(得分:0)

这可能很简单,但是你不能将它向上舍入然后减去1吗? 例如:

number=1.5
round(number)-1
> 1

答案 10 :(得分:0)

只需进行舍入(x-0.5),这将始终返回您的Float的下一个四舍五入的Integer值。您也可以通过do round(x + 0.5)轻松舍入

答案 11 :(得分:-1)

我使用此代码从数字中减去0.5,然后将其四舍五入,即原始数字四舍五入。

  

回合(a-0.5)