-1

我需要去掉我的答案的小数位,

IE:17.5(我知道我可以使用 toFixed() 将它带到 18,但这不是我想要的)

我希望答案是“17”

目前我可以做到这一点的唯一方法是执行以下操作(转换为字符串等):

Num = 17.5;                  
Nums = Num.toString();
Numc = Nums.substring(0,2)
Numn = Number(Numc); //Displays 17

然后,这允许我在我的 Javascript 中使用 17 来计算总和。

我只是想知道是否有比使用我当前的方法更简单的方法来实现这一点?类似于 toFixed() 但只是将其四舍五入到较低的选项?哈哈

4

3 回答 3

2

您可以将Math.floor用于正数(不确定您想要什么用于负数):

var d = Math.floor(17.5);
于 2013-11-05T13:39:54.707 回答
1
var toInteger = function(num) {
    return num >= 0 ? Math.floor(num) : Math.ceil(num);
}

toInteger(12.3); // returns 12
toInteger(-12.3); // returns -12
于 2013-11-05T13:45:32.960 回答
0

您实际上可以使用toFixed(0)来完成此操作

1234.5678.toFixed(0);

虽然Math.floor更快 http://jsperf.com/math-floor-vs-tofixed。我在测试中包含了 aga 的功能

于 2013-11-05T13:57:07.860 回答