MySQL/C#/Java/Python/Ruby/VB.Net均有提供decimal类型(或类似类型)。
- MySQL/C#/VB.Net的decimal类型有大小限制,同样有精度限制。
- Java提供BigDecimal可以比float或double有更高有效位,但实际上依然可能丢失精度。
- Python的Decimal也可以比普通浮点数更高精度,依然有精度限制(默认28位)。
- Ruby的
BigDecimal类提供了任意精度的十进制数运算能力。 - JS没有decimal类型,它提供的是Number类型,本质是64位的IEEE双精度浮点数,也存在精度问题。
为了避免精度丢失,可选的方案依然是用字符串模拟浮点数或整数。
