繁体   English   中英

如何从函数始终返回小数点后两位的数字

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM