Javascript 如何删除分数点后的0?
我有以下变量:Javascript 如何删除分数点后的0?,javascript,jquery,regex,Javascript,Jquery,Regex,我有以下变量: var result = 30.03692740; 我想在之后删除0,以便最终结果为: 30.3692740 怎么做 我试过: result = result.replace('.0' , '.'); 但它不工作。使用字符串。要执行此操作,需要将数字转换为字符串: var结果=30.03692740; result=result.toString(); 结果=结果.替换('.0','.'); result=parseFloat(结果); 控制台日志(结果)请原谅我的好奇,但
var result = 30.03692740;
我想在
之后删除0
,以便最终结果为:
30.3692740
怎么做
我试过:
result = result.replace('.0' , '.');
但它不工作。使用字符串。要执行此操作,需要将数字转换为字符串:
var结果=30.03692740;
result=result.toString();
结果=结果.替换('.0','.');
result=parseFloat(结果);
控制台日志(结果)代码>请原谅我的好奇,但你为什么要这么做
答案是:
var result = 30.03692740;
result = result.toString().replace('.0' , '.');
正如其他人指出的,replace()
与字符串一起工作,因此需要首先将数字转换为字符串。使用.toString()
进行转换是最清晰的方法,但如果性能至关重要,则转换速度更快:
result = (result + "").replace('.0' , '.');
或者,您可以使用数学,而不是转换为字符串。首先将整数部分和小数部分分开,将小数部分乘以10以删除第一个零,然后再将这两部分相加。这种方法的唯一问题是会遇到浮点数精度。通常这是可以忽略的,但如果是问题,可以使用.toFixed()
:
var结果=30.03692740;
结果=parseInt(结果)+(结果%1*10);
控制台日志(结果);
console.log(result.toFixed(6))代码>(result.toString())
一个数字不是字符串,我希望您知道。注意:如果您的初始赋值和最终结果是字符串,则您的最终结果只能是30.3692740
,我不会解析字符串。。。OP想要尾随的0
@JaromandaX——哈哈。尾随的0未与原始赋值保持一致result=30.03692740
。