前言
在最近业务开发中, 作者偶遇到了一个与 JavaScript 浮点数相关的 Bug。
这里就简单描述下背景: 在提现相关业务时, 会将展示给用户以元为单位的数值转化为以分为单位的数值。...转化方法很简单
// 小程序代码 onInput: 监听Input事件
onInput(e) {
let value = e.target.value;
//限制除数字和小数点以外的字符输入.../g, '')
.replace(/\.{2,}/g, '.')
// 保留数字小数点后两位
.replace(/^(.*\..{...要解答这个问题始终绕不过JavaScript中最基础也是最核心的浮点数的格式存储。...实际上, JS中的数字都会转化为二进制存储下来, 由于数字存储限定了64位, 但现实世界中, 数字是无穷的, 所以一定会有数字超出这个存储范围。超出这个范围的数字在存储时就会丢失精度。