网站首页 > 技术文章 正文
如何从 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'
更多内容请访问我的网站:https://www.icoderoad.com
猜你喜欢
- 2024-11-27 VirtualBox 7.1.2 发布! 带来多项 GUI 更新,无人值守安装已彻底删除
- 2024-11-27 Spring boot+Mybatisplus用AR模式实现逻辑删除操作
- 2024-11-27 碎片时间学编程「127]:从数组中删除元素
- 2024-11-27 JavaScript程序员需要掌握的5个debug技巧
- 2024-11-27 python 列表删除
- 2024-11-27 souce-map-js + Vue 还原生成环境报错,让JS报错无所遁形
- 2024-11-27 如何使用 rmdir 命令删除目录?
- 2024-11-27 illustrator插件-常用功能开发-删除所有蒙版-js脚本开发-AI插件
- 2024-11-27 如何在 Ubuntu 22.04 LTS 中添加、删除和授予用户 Sudo 权限
- 2024-11-27 删除此函数式编程技术的 Switch 语句
- 标签列表
-
- content-disposition (47)
- nth-child (56)
- math.pow (44)
- 原型和原型链 (63)
- canvas mdn (36)
- css @media (49)
- promise mdn (39)
- readasdataurl (52)
- if-modified-since (49)
- css ::after (50)
- border-image-slice (40)
- flex mdn (37)
- .join (41)
- function.apply (60)
- input type number (64)
- weakmap (62)
- js arguments (45)
- js delete方法 (61)
- blob type (44)
- math.max.apply (51)
- js (44)
- firefox 3 (47)
- cssbox-sizing (52)
- js删除 (49)
- js for continue (56)
- 最新留言
-