一个未知的数字,也不知道带不带小数点,带多少位
要把它转换成字符串
小数点不能漏掉
小数点后面有可能是很多个0
例如:18,20.3,3.66,3.001,3.0000
常用的是:str = num + '';
但是很遗憾 3.0000 + ''
= 3
。
有什么办法可以解决这个问题么?
一个未知的数字,也不知道带不带小数点,带多少位
要把它转换成字符串
小数点不能漏掉
小数点后面有可能是很多个0
例如:18,20.3,3.66,3.001,3.0000
常用的是:str = num + '';
但是很遗憾 3.0000 + ''
= 3
。
有什么办法可以解决这个问题么?
你会这么问说明你没搞明白数字在js里是怎么存的。实际上不仅js,大多语言都一样,不关心、不区分也不会存储一个小数字面上小数部分末尾有几个0,3.0和3.00按IEEE754规范在内存里是一模一样的。你非要对此进行区分,就只能改用字符串存储,或使用自己设计的数据结构。但是一般不会有你提到的这种需求,你可以把你的使用场景放上来,应该有别的解决方案。
如果只是保留固定小数位数的话使用楼上说的toFixed
就行了
13 回答13.1k 阅读
7 回答2.3k 阅读
3 回答1.4k 阅读✓ 已解决
6 回答1.5k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
3 回答1.5k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
在Chrome控制台试了下,小数点后的末尾零都会被自动舍弃。所以建议你拿到数值之后,还需要拿到这个数后有几位小数位。然后调用toFixed方法就行了。
