例如,我的号码是123.429。如何在不舍入到小数点后两位的情况下删除尾随小数。因此,我需要最多两个d.p.即123.42。绝对不能在这种情况下使用固定()方法或Math.round(num * 100)/ 100。
答案 0 :(得分:4)
var number = parseInt('' + (num * 100)) / 100;
答案 1 :(得分:4)
您想要的功能是Math.floor(x)
删除小数而不进行舍入(所以floor(4.9) = 4
)。
var number = Math.floor(num * 100) / 100;
编辑:我想更新我的答案,因为实际上,这会以负数来回转 down :
var Math.floor(-1.456 * 100) / 100;
-1.46
但是,从Javascript 6开始,他们引入了Math.trunc()
函数,该函数截断为int而不进行舍入,如预期的那样。您可以使用与我建议使用Math.floor()
:
var number = Math.trunc(num * 100) / 100;
或者,awe提出的parseInt()
方法也适用,但需要字符串分配。
答案 2 :(得分:0)
您可以将其转换为字符串,然后在小数点后的两个位置截断字符串,例如:
var s = String(123.429);
s.substring(0, s.indexOf('.') + 3); // "123.42"
请注意,如果您将最终字符串转换回 完全可表示这两位小数的数字,则无法保证 - 计算机浮点数学没有&这样工作。
答案 3 :(得分:-1)
让变量名称为" num"
var num = 123.429;
num=num*100;
num=num.toString();
num=num.split(".");
num=parseInt(num[0]);
num=num/100;
num变量的值将为12.42