如何在分数点后删除0?

时间:2018-04-16 04:17:40

标签: javascript jquery regex

我有以下变量:

var result = 30.03692740;

我想在0之后删除.,以便最终结果为:

  

30.3692740

怎么做?

我试过了:

result = result.replace('.0' , '.');

但它不起作用。

3 个答案:

答案 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));