在我的网络应用程序中,我正在使用 javascript 进行简单的数学计算,并且必须在页面中显示结果。
结果可以是十进制值或整数,所以目前我正在使用该toFixed
方法来限制可能存在的十进制密码。
显然,即使值是整数,使用toFixed(2)
I 总是会得到类似的结果。1.00
所以我想找到一种方法来避免当值不是浮点数时使用十进制密码。是否有任何方法或实用功能来实现这一点?
在我的网络应用程序中,我正在使用 javascript 进行简单的数学计算,并且必须在页面中显示结果。
结果可以是十进制值或整数,所以目前我正在使用该toFixed
方法来限制可能存在的十进制密码。
显然,即使值是整数,使用toFixed(2)
I 总是会得到类似的结果。1.00
所以我想找到一种方法来避免当值不是浮点数时使用十进制密码。是否有任何方法或实用功能来实现这一点?
试试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
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
删除“.00”
yourNumber.toFixed(2).replace(/\.00$/,"");
将尾随零替换为空,并在没有小数时删除小数点。
yourNumber.toFixed(2).replace(/\.?0+$/,"");
一个选项可以是以前通过检查检查我的结果是否为整数值:
result % 1 === 0
那么如果这个条件为真,我可以避免toFixed
在我的结果上使用。