我有下面的代码。我想让它这样,如果price_result等于一个整数,比如10,然后我想加两位小数点后。所以10就是10.00。 如果等于10.6,就是10.60。不知道该怎么做。

price_result = parseFloat(test_var.split('$')[1].slice(0,-1));

当前回答

您可以使用.toFixed()来表示浮点值2位

Exampale

let newValue = parseFloat(9.990000).toFixed(2) / /输出 9.99

其他回答

来自洛达什的西尔可能是最好的

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

也会工作与一个数字,它是安全的

如果你需要性能(游戏邦注:比如在游戏中):

Math.round(number * 100) / 100

它大约是parseFloat(number.toFixed(2))速度的100倍。

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

如果你不想四舍五入,请使用下面的函数。

function ConvertToDecimal(num) {
    num = num.toString(); //If it's not already a String
    num = num.slice(0, (num.indexOf(".")) + 3); //With 3 exposing the hundredths place
   alert('M : ' +  Number(num)); //If you need it back as a Number    
}

试试这个(参见代码中的注释):

function fixInteger(el) {
    // this is element's value selector, you should use your own
    value = $(el).val();
    if (value == '') {
        value = 0;
    }
    newValue = parseInt(value);
    // if new value is Nan (when input is a string with no integers in it)
    if (isNaN(newValue)) {
        value = 0;
        newValue = parseInt(value);
    }
    // apply new value to element
    $(el).val(newValue);
}

function fixPrice(el) {
    // this is element's value selector, you should use your own
    value = $(el).val();
    if (value == '') {
        value = 0;
    }
    newValue = parseFloat(value.replace(',', '.')).toFixed(2);
    // if new value is Nan (when input is a string with no integers in it)
    if (isNaN(newValue)) {
        value = 0;
        newValue = parseFloat(value).toFixed(2);
    }
    // apply new value to element
    $(el).val(newValue);
}

当你使用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