我有一系列变量,它们有一个小数点和几个零。如何去掉变量,使其从1.000变为1?
简单。。。
Math.round(quantity);
假设您想要将1.7
舍入为2
。如果不是,则将Math.floor
用于1.7
到1
。
使用parseInt();
parseInt("1.25");//returns 1
parseInt("1.85");//returns 1
parseInt(1.25);//returns 1
parseInt(1.85);//returns 1
使用number = ~~number
这是Math.floor()
的最快替代品
使用Math.trunc()
。它完全符合你的要求。它去掉了小数。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc
parseInt是最慢的方法math.floor是第二慢的方法
这里没有列出的更快的方法是:
var myInt=1.85|0;myInt=1;
var myInt=1.85>>0;myInt=1;
速度测试在这里完成:http://jsperf.com/math-floor-vs-math-round-vs-parseint/2
要将数字四舍五入到最接近的整数,可以使用Math.round()
,如下所示:
Math.round("1.000"); // Will produce 1
Math.round(123.4234); // Will produce 123
您不需要jQuery。
您可以很好地使用parseInt。从页面:
document.write(parseInt("10.33") + "<br />"); // 10
这里有另一个很好的例子:
我经常使用Math.round
和toLocateString
将包含小数位数的数字转换为可读性更强的字符串,带有千个分隔符:
var myNumberAsString = "1234567.890123" // "1234567.890123"
var myNumber = Math.round(0.0 + myNumberAsString); // 1234568
return myNumber.toLocaleString(); // "1,234,568"
当从JSON Web Service加载十进制值时,我发现这很有用,并且需要在网页上以更友好的格式显示它们(当然,我不需要显示所有的小数点(。
一种更快、更高效的方法是使用JavaScript的逐位运算符,比如:
function stripDecimals(n) {
return n | 0;
}
// examples:
stripDecimals(23.245); // => 23
stripDecimals(100.015020); // => 100
|
(OR运算符(将数字视为32位(二进制0s
和1s
(,然后根据操作数返回所需结果,在这种情况下,这将导致去掉所有小数位数的整数。
我建议您使用Math.trunc()
。。。把你的数字放在括号里。我不建议你使用Math.round()
的原因是它可能会改变你的十进制数的整数部分,而有些人不会想要,尽管如果你知道你想得到最接近的整数,你可以使用Math.round()
。