如何解析浮点数在JavaScript中的两位小数?

我有以下代码。我想要这样,如果price_result等于一个整数,比如说10,那么我想加两个小数位。所以10将是10.00。如果等于10.6,则等于10.60。不确定如何执行此操作。

price_result = parseFloat(test_var.split('$')[1].slice(0,-1));
Mandy村村2020/04/03 11:30:33

我还有其他解决方案。

您可以用来round()代替toFixed()

var twoPlacedFloat = parseFloat(yourString).round(2)
樱小胖Mandy2020/04/03 11:30:33

适用于我的解决方案如下

parseFloat(value)
Itachi2020/04/03 11:30:33

简单的JavaScript,浮点数的字符串:

var it_price = chief_double($("#ContentPlaceHolder1_txt_it_price").val());

function chief_double(num){
    var n = parseFloat(num);
    if (isNaN(n)) {
        return "0";
    }
    else {
        return parseFloat(num);
    }
}
古一2020/04/03 11:30:33

对于它的价值:十进制数字是十进制数字,您可以将其四舍五入为其他值。在内部,它将根据浮点合成和处理规则近似为小数点后一位。无论要显示多少位数,它在内部都保留一个十进制数字(浮点数,在JS中为双精度)。

要显示它以进行显示,您可以通过字符串转换将显示的精度选择为所需的精度。演示是一个显示问题,而不是存储问题。

斯丁2020/04/03 11:30:32

来自lodash的ceil可能是最好的

_.ceil("315.9250488",2) 
_.ceil(315.9250488,2) 
_.ceil(undefined,2)
_.ceil(null,2)
_.ceil("",2)

也可以与数字一起使用,这是安全的

老丝2020/04/03 11:30:32

如果您的目标是解析,并且您的输入可能是文字,那么您会期望a float并且toFixed不会提供它,因此这里有两个简单的函数可以提供此功能:

function parseFloat2Decimals(value) {
    return parseFloat(parseFloat(value).toFixed(2));
}

function parseFloat2Decimals(value,decimalPlaces) {
    return parseFloat(parseFloat(value).toFixed(decimalPlaces));
}
Stafan路易2020/04/03 11:30:32

要返回数字,请添加另一层括号。保持清洁。

var twoPlacedFloat = parseFloat((10.02745).toFixed(2));
HarryItachi2020/04/03 11:30:32

使用时toFixed,它始终以字符串形式返回值。这有时会使代码复杂化。为避免这种情况,可以为Number设置另一种方法。

Number.prototype.round = function(p) {
  p = p || 10;
  return parseFloat( this.toFixed(p) );
};

并使用:

var n = 22 / 7; // 3.142857142857143
n.round(3); // 3.143

或者简单地:

(22/7).round(3); // 3.143
番长猴子2020/04/03 11:30:32

如果您需要性能(例如在游戏中):

Math.round(number * 100) / 100

大约是parseFloat(number.toFixed(2))的100倍

http://jsperf.com/parsefloat-tofixed-vs-math-round

Itachi2020/04/03 11:30:32

您可以使用toFixed()来做到这一点

var twoPlacedFloat = parseFloat(yourString).toFixed(2)