[英]how to return a number with 2 decimal places all the time from a function
我有一个随机数生成器函数,它返回一个随机数。 看来问题在于,有时它仅返回小数点后一位(十分之一)(我认为这是被称为)。 我总是希望它输出与2位小数 号码 (有些时候,我想我10.50将获得10.5)。
在我的代码中,我加了一个加号将其转换为数字。我相信这就是导致百分位删除的原因。 解决此问题的最佳方法是什么?
function randomGen() {
return +(Math.random() * 11).toFixed(2)
}
// console.log(randomGen())
// some times i would get 10.5 when i want 10.50
var num1 = randomGen(); // i want 10.50, for example not 10.5
var num2 = randomGen();
console.log(num1, " ", num2)
console.log(+(num1 + num2).toFixed(2))
谢谢
在我的代码中,我加了一个加号将其转换为数字。我相信这就是导致百分位删除的原因。 解决此问题的最佳方法是什么?
是的- 请勿将其转换为数字!
从数字上讲,没有10.50
这样的东西。 只有10.5
只有一个字符串能够保存10.50
类的值,并且您从toFixed()
获得一个字符串,然后将其转换回数字。
所以我不能说比itd更好:
松开+号
失去+号,您应该可以:
function randomGen(){
return (Math.random()*11).toFixed(2)
}
// console.log(randomGen())
// some times i would get 10.5 when i want 10.50
var num1 = randomGen(); // i want 10.50, for example not 10.5
var num2 = randomGen();
console.log(num1, " ", num2)
console.log((num1 + num2).toFixed(2))
如果要在JavaScript中将字符串转换为数字,请使用'parseFloat'函数。 请注意,如果将字符串转换为数字,它将始终截断十进制的零(例如10.50变为10.5)。
使用数字进行计算,并在获得最终结果后,使用“ toFixed”方法将其转换为字符串,以便将其显示为两位小数。
使用以下内容:
randomGen(){
result=(Math.random()*11)
return parseFloat(result,10).toFixed(2)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.