首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js去掉末尾的0

在 JavaScript 中,要去掉一个数字末尾的 0 ,可以将其转换为字符串,然后使用正则表达式进行处理。

以下是一个示例代码:

代码语言:txt
复制
function removeTrailingZeros(num) {
  return num.toString().replace(/(\.\d*?[1-9])0+$|\.0*$/, '$1');
}

console.log(removeTrailingZeros(1.2300)); // 输出: 1.23
console.log(removeTrailingZeros(1.00)); // 输出: 1
console.log(removeTrailingZeros(10.0)); // 输出: 10

原理:这个正则表达式的含义是,匹配小数点后多余的 0 ,或者小数点后全是 0 的情况,并将其替换掉。

应用场景:常用于处理从后端获取的数据,在展示给用户时需要格式化数字,使其更简洁美观。

可能遇到的问题及解决方法:

  1. 如果数字是整数,可能会出现意外结果。可以在处理前先判断是否为整数。
  2. 对于非常大的数字或者非常小的数字(科学计数法表示),可能需要额外的处理逻辑。

如果想要更精确地控制数字的格式,还可以使用 toFixed() 方法结合一些逻辑来实现。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 100 的阶乘末尾有多少个0?

    本篇文章是在osChina的代码分享里下载下来的,这里把它整理一下。 前一段时间看到一个往年程序竞赛的题解, 有一个题目说的是求 100 的阶乘末尾有多少个 0....题解中给出的讲解提到, 一个数 n 的阶乘末尾有多少个 0 取决于从 1 到 n 的各个数的因子中 2 和 5 的个数, 而 2 的个数是远远多余 5 的个数的, 因此求出 5 的个数即可....题解中给出的求解因子 5 的个数的方法是用 n 不断除以 5, 直到结果为 0, 然后把中间得到的结果累加....例如, 100/5 = 20, 20/5 = 4, 4/5 = 0, 则 1 到 100 中因子 5 的个数为 (20 + 4 + 0) = 24 个, 即 100 的阶乘末尾有 24 个 0....直到结果为 0, 表示没有能继续被 5 整除的数了.

    2.1K30

    js 中数字小数点末尾的0显示与否

    js 中数字小数点末尾的0显示与否 不显示0 显示0(数字格式化) 不显示0 我们先来看一道例题,然后围绕其展开“零”的讨论: 问题:得到一个随机数组成的数组,数组长度为10 结果类似于:[0.243...(10).fill(); console.log(arr); 输出(为了展示效果,下面均是在browser环境进行调试;另外在Node.js环境下也成功调试,此处未展示): 由于Math.random...const newArr = arr.map(function (item) { return getRandom(100,1000)/1000;//获取0~1之间的数,等同于Math.floor...() }); console.log(newArr); 输出: 小结:上面三种方法最终获取的数字都是number类型(都省略了末尾的0);由此可以看出,想得到保留小数点末尾0的数字,只能将其数字格式化...显示0(数字格式化) 下面是通过格式化方法显示小数点末尾末尾的0 ,最终获取的数字是string类型 /** * 格式化数字,保留小数点后末尾的0 * @param {Number} value 需要格式化的小数

    5.7K40

    ERP小技巧之 商品编码去掉前置0

    界面呈现的时候系统转换去掉了前置0. 如图中的客户字段效果.。 ? 1 我们也和客户解释: SAP就是这样的. 数字编码就是带有前置0, 要不,咱们加个字母放在编码里, 就不会有前置0了。...2 我们也和外围系统解释: SAP商品就是这样的, 大不了我在接口传输给你的时候转换一下, 去掉前置0。 3 我们还得小心在导入处理时添加前置0,以免系统识别不了商品编码。...4 我们还对自己解释: SAP这样设计的目的肯定是为了编码长度一致,查询效率高。 5 项目中可能还会碰到这样的问题: 客户旧商品编码本身带有前置0 ....进入SAP后, 因为商品编码添加前置0的原因, 这两个编码无法并存。 6 我们很聪明的把客户编码放到了商品的旧物料号字段....在接口处理时转换编码: 入站添加前置0, 出站去掉前置0(或者入站时转换旧编码成SAP编码,出站时转换SAP编码为旧编码)。

    84920

    末尾有多少个0

    一、思路 一个数末尾的0是由2和5乘出来的,而1到2000里2多得是,主要看1到2000中有多少个5或5的n次方的倍数。 (1)统计5的倍数 2000/5=400,比如5、10、15、20、25等等。...这些数,要么直接含了0,要么与2的倍数相乘会得到0,所以共有400个0。...(2)统计25的倍数 2000/25=80,比如25、50、75等等,这些数与4或4的倍数相乘,会得到两个0,但因为上一步中经加过一次0了,所以这里只能加80个0,而不是80 * 2 = 160个0。...(3)统计125的倍数: 2000/125=16,比如125、250、375等等,这些数与8或8的倍数相乘,会得到3个0。但是因为前两步算过两次了,这里只能再加一次。...所以会增加16个0,而不是16 * 3 = 48个0。 (4)统计625的倍数 2000/625=3。这三个数分别数是625,1250和1875。这些数与16或16的倍数相乘,会得到4个0。

    79730

    基于Traefik的小技巧2则:如何实现向后转发自动去掉前缀 & 如何实现 path 末尾自动加斜杠?

    系列文章: •《Traefik 系列文章》[2] 向后转发自动去掉前缀 实践中, 往往会有这样的需求, 用户输入的url是https://ewhisper.cn/alert-manager/#/alerts...Path 末尾自动加斜杠 实践中,一个很常见的需求,用户输入的 url 是 ewhisper.cn/alert-manager, 如果什么都不做会返回 404, 需要自动加斜杠变成 ewhisper.cn...://[^/]+/[-a-z0-9_]+)$ replacement: ${1}/ 说明如下: 正则匹配的内容为: •^(https?: 以 https 或 http 开头的内容;?...表示匹配前一个字符 0 或 1 次•[^/]+/: 匹配 URL 第一个 / 之前的内容•[-a-z0-9_]+: 匹配第一个 / 之后的内容,往往为字母数字和中划线及下划线 最终,^(https?...://[^/]+/[-a-z0-9_]+) 该 group 匹配的内容示例如:https://ewhisper.cn/monitor-alertmanager, 并将其替换为:{1}/, 即将匹配的 group

    1.4K20

    简单探索 js 中 something >> 0 的原理

    里面的实现是怎样的,结果发现这么一行: // truncate if number or convert non-number to 0 target = target >> 0; 我倒不是对这个代码本身的作用有什么疑问...,毕竟之前看过好多关于 js 技巧的文章,其中都介绍过这种写法,并且自己也在实际工作中运用过多次。...0 console.log(target) // 0 根据 GetValue 的逻辑可以发现,走到第二步就返回该值了,因为它是一个基础数据类型,所以 lval 的值为 ‘a’。...之后带入之前右移操作规范的 10 和 11 步就会得知,’a’ >> 0 等价于 +0 >> 0,最终的结果是 +0。...但是当我们遇到一些自己不懂或者不熟悉的东西时,一定要有意识去寻根问底,这样积少成多,精通 js 早晚会变成现实。

    1.2K30

    JS 语法糖 0 ——解构

    JS 获取对象的属性和访问数组内容是都是很常用的操作,从 ECMAScript 6 开始,允许按照一定模式从数组和对象中提取值对变量进行赋值,这被称为解构(Destructuring)。...在这篇文章中,你将会看到 JS 解构的常见用法和技巧。 1.数组解构 1.1 简介 以前访问数组元素使用下标。...var [car0, car1, car2] = cars 本质上,这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值。...let x; if ([1][0] === undefined) { x = f(); } else { x = [1][0]; } 默认值可以引用解构赋值的其他变量,但该变量必须已经声明。..., 0] move({}); // [0, 0] move(); // [0, 0] 上面代码中,函数 move 的参数是一个对象,通过对这个对象进行解构,得到变量 x 和 y 的值。

    7.2K30
    领券