[英]strip decimal points from variable
我有一系列具有小数点和几个零的变量。 如何剥离变量,使其从 1.000 变为 1?
我不认为这有那么重要,但这些数字是从我用 jquery 抓取的 xml 文件生成的,例如:
var quantity = $("QTY",this).text();
只是...
Math.round(quantity);
...假设您想将1.7
舍入为2
。 如果不是,请对1.7
to 1
使用Math.floor
。
使用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()
的最快替代品
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.trunc()
。 它确实满足您的要求。 它去除小数点。
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc
为了将数字四舍五入到最接近的Integer,可以使用Math.round()
如下所示:
Math.round("1.000"); // Will produce 1
Math.round(123.4234); // Will produce 123
这是另一个很好的例子:
我经常使用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()
如果你知道你想要得到的最接近的整数。
Math.trunc()
和~~
删除decimal part
,对integer part
没有任何影响。
例如:
console.log(Math.trunc(3.9)) // 3
console.log(~~(3.9)) // 3
所以在你的情况下:
console.log(Math.trunc(quantity))
console.log(~~(quantity))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.