我有下面的代码。我想让它这样,如果price_result等于一个整数,比如10,然后我想加两位小数点后。所以10就是10.00。 如果等于10.6,就是10.60。不知道该怎么做。
price_result = parseFloat(test_var.split('$')[1].slice(0,-1));
我有下面的代码。我想让它这样,如果price_result等于一个整数,比如10,然后我想加两位小数点后。所以10就是10.00。 如果等于10.6,就是10.60。不知道该怎么做。
price_result = parseFloat(test_var.split('$')[1].slice(0,-1));
当前回答
如果你的目标是解析,你的输入可能是一个文字,那么你会期望一个浮点数,而toFixed不会提供这个,所以这里有两个简单的函数来提供这个:
function parseFloat2Decimals(value) {
return parseFloat(parseFloat(value).toFixed(2));
}
function parseFloat2Decimals(value,decimalPlaces) {
return parseFloat(parseFloat(value).toFixed(decimalPlaces));
}
其他回答
下面是对我有效的解决方案
parseFloat(value)
如果你需要性能(游戏邦注:比如在游戏中):
Math.round(number * 100) / 100
它大约是parseFloat(number.toFixed(2))速度的100倍。
http://jsperf.com/parsefloat-tofixed-vs-math-round
我已经为我的案子试过了,它会工作得很好。
var multiplied_value = parseFloat(given_quantity*given_price).toFixed(3);
样例输出:
9.007
parseFloat(parseFloat(amount).toFixed(2))
你必须解析两次。第一次是将字符串转换为浮点数,然后将其固定为两个小数(但toFixed返回一个字符串),最后再次解析它。
如果你不想四舍五入,请使用下面的函数。
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
}