我有以下变量:
var result = 30.03692740;
我想在0
之后删除.
,以便最终结果为:
30.3692740
怎么做?
我试过了:
result = result.replace('.0' , '.');
但它不起作用。
答案 0 :(得分:4)
replace
适用于字符串。您需要将数字转换为字符串才能执行此操作:
var result = 30.03692740;
result = result.toString();
result = result.replace('.0', '.');
result = parseFloat(result);
console.log(result);
答案 1 :(得分:0)
请原谅我的好奇但你为什么要那样做?
答案是:
var result = 30.03692740;
result = result.toString().replace('.0' , '.');
答案 2 :(得分:0)
正如其他人所指出的,replace()
适用于字符串,因此您需要先将数字转换为字符串。使用.toString()
进行转换是最明确的方法,但如果性能至关重要,那么速度会更快:
result = (result + "").replace('.0' , '.');
或者,您可以使用数学而不是转换为字符串。首先分离积分和小数部分,将小数部分乘以10以移除第一个零,然后将这两个部分再次相加。这种方法的唯一问题是您遇到浮点数精度。通常这很好,可以忽略,但如果是一个问题,可以用.toFixed()
修复:
var result = 30.03692740;
result = parseInt(result) + (result % 1 * 10);
console.log(result);
console.log(result.toFixed(6));