当value是整数时,删除十进制密码

时间:2013-11-12 15:32:09

标签: javascript numbers

在我的网络应用程序中,我正在使用javascript进行简单的数学计算,我必须在页面中显示结果。

结果可以是十进制值或整数,所以目前我正在使用toFixed方法来限制可能存在的十进制密码。

显然,使用toFixed(2)我总是得到类似1.00的内容,即使该值是整数。因此,当值不是浮点数时,我想找到一种避免十进制密码的方法。 是否有任何方法或实用功能来实现这一目标?

4 个答案:

答案 0 :(得分:1)

从mootools尝试Number.round(注意我很快将它改编成了我可能遗漏的东西):

var round = function (num, precision){
    precision = Math.pow(10, precision || 0).toFixed(precision < 0 ? -precision : 0);
    return Math.round(num * precision) / precision;
}

一些测试:

round(5, 2) // => 5
round(5.9, 2) // => 5.9
round(5.005, 2) // => 5.01
round(5.132, 2) // => 5.13

答案 1 :(得分:1)

JavaScript几乎已经为您处理了它。您可以使用toFixed然后将其强制转换为数字(因为toFixed返回一个字符串):

var a = 1, b = 1.1111111;
console.log(+(a + b).toFixed(2)); // 2.11

var a = 1, b = 1;
console.log(+(a + b).toFixed(2)); // 2

答案 2 :(得分:1)

删除“.00”

yourNumber.toFixed(2).replace(/\.00$/,"");

用任何内容替换尾随零,并删除小数点,没有小数。

yourNumber.toFixed(2).replace(/\.?0+$/,"");

答案 3 :(得分:0)

选项可以通过检查:

预先检查我的结果是否为整数值
result % 1 === 0

然后,如果这个条件为真,我可以避免在我的结果上使用toFixed