正如标题所示,我想取一个浮点数并将其向下舍入到最接近的整数。但是,如果它不是一个整体,我总是想要舍入变量,无论它与下一个整数的接近程度如何。有没有办法做到这一点?
答案 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)
我认为你需要一个地板功能:
答案 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)