从变量中去掉小数点



我有一系列变量,它们有一个小数点和几个零。如何去掉变量,使其从1.000变为1?

简单。。。

Math.round(quantity);

假设您想要将1.7舍入为2。如果不是,则将Math.floor用于1.71

使用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.roundtoLocateString将包含小数位数的数字转换为可读性更强的字符串,带有千个分隔符:

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位(二进制0s1s(,然后根据操作数返回所需结果,在这种情况下,这将导致去掉所有小数位数的整数

我建议您使用Math.trunc()。。。把你的数字放在括号里。我不建议你使用Math.round()的原因是它可能会改变你的十进制数的整数部分,而有些人不会想要,尽管如果你知道你想得到最接近的整数,你可以使用Math.round()

相关内容

  • 没有找到相关文章

最新更新