【案例3】JavaScript保留两位小数,自动补零

这篇博客介绍了如何使用JavaScript处理数字,确保其始终保留两位小数,不足时补零,多余时忽略。首先,通过检查数字是否已有小数点并添加补零,然后使用四舍五入方法配合乘除运算实现自动调整小数位数。这种方法适用于统一数字格式,确保显示一致性。

JavaScript保留两位小数,自动补零

1、保留两个位小数,位数不够补齐,位数多的自动忽略

将数字或字符串处理成统一字符串格式

num += ''

检查字符串中是否有小数点,没有小数点后边补两个零

if (!/\./.test(num)) {
    num += '.00'
}

检查是否是只有一位小数,是一位小数则后边补一个零

var arrayNum = num.split('.')
if (arrayNum[1].length < 2) {
   num += '0'
}
2、不论几位小数,直接四舍五入保留两位小数

传来的数值或字符串,转换为浮点数。然后将小数点向右移动两位小数,再利用Math.round()方法进行四舍五入计算,最后除以100,这样实现保留两位小数

var value = Math . round( parseFloat(num) * 100 ) / 100

去掉逗号,将数值存到数组中

var arrayNum = value. toString() . split(".")

根据数组长度来判断,如果长度为1,后边补两个零

if ( arrayNum.length == 1) {
  return value. toStrng() + '.00'
}

如果长度大于1,则直接返回。如果小数点后只有一位,后边补一个零

if (arrayNum.length > 1) {
  if ( arrayNum[1] .length < 2) {
    return value.toString() + '0'
  }
}
在 MySQL 中保留两位小数且不足时补零,有以下几种实现方法: #### 使用 `FORMAT` 函数 `FORMAT` 函数可以将数字格式化为指定小数位数的字符串,并且会自动补零。 ```sql -- 保留两位小数,四舍五入后仍保留 0;结果是“字符串” SELECT FORMAT(CAST(amount AS DECIMAL(18,2)), 2) AS amount_fmt FROM t; -- 更多示例 -- 1) 经典:保留2位 SELECT amount AS origin, CAST(amount AS DECIMAL(18,2)) AS rounded_num, -- 数值,四舍五入 FORMAT(CAST(amount AS DECIMAL(18,2)), 2) AS rounded_str -- 字符串,带末尾0 FROM t; -- 2) 保留4位 SELECT FORMAT(CAST(amount AS DECIMAL(18,4)), 4) FROM t; -- 3) 去掉千分位分隔符(很多报文/接口不要逗号) SELECT REPLACE(FORMAT(CAST(amount AS DECIMAL(18,2)), 2), &#39;,&#39;, &#39;&#39;) AS amount_str FROM t; -- 4) 指定本地化(MySQL 8+ 支持第三参数) -- 注意:不同 locale 的千分位/小数点符号不同 SELECT FORMAT(CAST(amount AS DECIMAL(18,2)), 2, &#39;en_US&#39;) AS us_style, FORMAT(CAST(amount AS DECIMAL(18,2)), 2, &#39;zh_CN&#39;) AS cn_style FROM t; ``` 这种方法先使用 `CAST` 函数将数值转换为 `DECIMAL` 类型进行精确四舍五入,再使用 `FORMAT` 函数在展示层进行格式化,结果为字符串类型,会保留末尾的零 [^2]。 #### 使用 `ROUND` 函数结合 `LPAD` 函数 如果想要手动控制补零操作,可以先使用 `ROUND` 函数进行四舍五入,再使用 `LPAD` 函数进行补零。 ```sql SELECT LPAD(ROUND(amount, 2), LENGTH(ROUND(amount, 2)) + 2 - LENGTH(TRUNCATE(amount, 2)), &#39;0&#39;) FROM t; ``` 此方法先对 `amount` 进行四舍五入保留两位小数,然后根据小数部分的长度计算需要补零的数量,最后使用 `LPAD` 函数在左边补零 [^1]。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值