用两位小数parsing浮点数

我有以下代码。 我想这样,如果price_result等于一个整数,比方说10,那么我想补充两位小数。 所以10将是10.00。 或者如果它等于10.6将是10.60。 不知道如何做到这一点。

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

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

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

当你使用toFixed ,它总是以stringforms返回值。 这有时使代码复杂化。 为了避免这种情况,您可以为Number创build一个替代方法。

 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 

如果你需要performance(如在游戏中):

 Math.round(number * 100) / 100 

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

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

要返回一个数字,请添加另一层圆括号。 保持干净。

 var twoPlacedFloat = parseFloat((10.02745).toFixed(2)); 

试试这个(见代码注释):

 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); } 

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

 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 } 

为什么它的价值:一个十进制数,是一个十进制数,你可以将它舍入到其他值。 在内部,它将根据浮点关节和处理的规则近似一个小数。 它在内部保留一个十进制数(浮点数,以JS为单位),不pipe你想显示多less位数。

要显示它,你可以通过string转换来select显示精度。 演示是一个显示问题,而不是存储的问题。

我有其他解决scheme。

你可以使用round()来做到这一点,而不是toFixed()

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

简单的javascriptstring来浮动

 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); } }