龙空技术网

碎片时间学编程「248]:如何从 JavaScript 的数字中删除尾随零?

路条编程 50

前言:

今天兄弟们对“js销毁实例”大概比较着重,我们都需要分析一些“js销毁实例”的相关内容。那么小编同时在网摘上汇集了一些对于“js销毁实例””的相关内容,希望大家能喜欢,咱们快快来了解一下吧!

如何从 JavaScript 的数字中删除尾随零?

JavaScript 提供了几种将数值格式化为给定精度的方法。也就是说,您可以使用 Number.prototype.toFixed() 和 Number.prototype.toPrecision() 方法来达到类似的效果。但是,它们都不处理小数部分的尾随零。您可以通过以下几种方式删除它们:

正则表达式

如果将数字转换为定点字符串,则可以使用正则表达式删除尾随零。您所要做的就是匹配小数点 (\.) 并替换它后面的所有零 (0+),直到字符串 ($) 结束。

JavaScript

const toFixedWithoutZeros = (num, precision) =>  num.toFixed(precision).replace(/\.0+$/, '');toFixedWithoutZeros(1.001, 2); // '1'toFixedWithoutZeros(1.500, 2); // '1.50'

这种方法的主要问题是,如果小数部分前面没有其他数字,则正则表达式只会删除尾随零。编写一个正则表达式来从任何数字中删除尾随零有点复杂并且更难阅读。因此,不鼓励这种方法。

乘以 1

去除尾随零的更好方法是乘以 1。此方法将从数字的小数部分去除尾随零,考虑小数点后的非零数字。唯一的缺点是结果是一个数值,所以它必须被转换回一个字符串。

const toFixedWithoutZeros = (num, precision) =>  `${1 * num.toFixed(precision)}`;toFixedWithoutZeros(1.001, 2); // '1'toFixedWithoutZeros(1.500, 2); // '1.5'

Number.parseFloat

与前面的方法类似,您可以使用 Number.parseFloat() 方法从数字中删除尾随零。此方法还考虑了小数点后的非零数字。我们推荐这种方法,因为它最易读。

const toFixedWithoutZeros = (num, precision) =>  `${Number.parseFloat(num.toFixed(precision))}`;toFixedWithoutZeros(1.001, 2); // '1'toFixedWithoutZeros(1.500, 2); // '1.5'

更多内容请访问我的网站:

标签: #js销毁实例 #js数字前面补零