RT
举报· 136 次点击
登录 注册 站外分享
17 条回复  
rrfeng 小成 2024-9-28 16:46:15
基础没学好,回去重修。

---
解决方法就是钱永远别用小数。
AoEiuV020JP 小成 2024-9-28 16:50:16
第一反应精度丢失问题,转念想怎么会差这么多, 仔细一看,ceil ,你确定这不是设计如此有人贪这差值吗,
Coelacanthus 初学 2024-9-28 16:51:23
计算金融不要用二进制浮点数,二进制浮点数的设计就没法精确表示十进制有理数。用十进制浮点数或者定点数,因为金融业务很少用到分以下,用定点数的比较多。十进制浮点数的支持状态也不太好。
TomVista 小成 2024-9-28 16:53:50
biginit
icyalala 小成 2024-9-28 17:09:17
"1.1" 是十进制,当这个值转为数字的时候是无限循环小数 1.0001100110011001100110011...
舍入后就是 1.0001100110011001100110011001100110011001100110011010, 注意最后一位是向上舍入的。
所以最开始从 "1.1" 这个字符串解析到数字的时候就已经不准确了。

属实是计算机基础不扎实。
pinocc012 小成 2024-9-28 17:22:14
内部数据应该用分为单位的整数吧,显示的时候转换
c8c 小成 2024-9-28 17:23:39
`npm install decimal.js`
xiangyuecn 初学 2024-9-28 18:05:17
既然用了浮点数 ceil ,哪就不得不得不掏出祖传的 0.30000000000000004.com 了

php -r var_dump(ceil(1.1*100));
//float(111)
chobitssp 小成 2024-9-28 18:06:21
bignumber.js
12下一页
返回顶部