如何删除尾随小数而不进行舍入?

时间:2015-01-27 12:23:50

标签: javascript jquery html css

例如,我的号码是123.429。如何在不舍入到小数点后两位的情况下删除尾随小数。因此,我需要最多两个d.p.即123.42。绝对不能在这种情况下使用固定()方法或Math.round(num * 100)/ 100。

4 个答案:

答案 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