在mysql中存储如何存储浮点型数据?
首先需要明确的是,不建议使用float和double类型,因为在比较的时候,可能会遇到丢失精度的问题。所以在使用浮点数时需要注意,并尽量避免做浮点数比较。通常都是建议需要使用decimal。如果需要存储的长度超过了decamal的长度,可以将整数部分和小数部分分开存储。
DECIMAL 类型不同于 FLOAT 和 DOUBLE。DOUBLE 实际上是以字符串的形式存放的,DECIMAL 可能的最大取值范围与 DOUBLE 相同,但是有效的取值范围由 M 和 D 决定。如果改变 M 而固定 D,则取值范围将随 M 的变大而变大。
其实在java中使用float和double的时候也会有丢失精度的问题。也是建议使用BigDecimal类型。
为啥会有丢失精度的问题,网络上有一些分析文章可以参考。
突然想起来,之前参加java机试的时候还遇到过一道题是问如何计算不限制长度的数字的加减运算?我当时是作为string,然后从后往前每个数字都运算,然后考虑上借位。后面也没有去考虑是否有更好的办法。
相关推荐
-
MySQL 安装失败,提示Apply Security Settings 的处理办法
MySQL 安装失败,提示Apply Security Settings 的处理办法2025-04-20 01:54:57 -
MySQL事务隔离级别详解2025-04-20 01:44:01
-
一文说清nginx规则匹配(含案例分析)2025-04-20 01:10:02
-
运维服务篇:Nginx常用功能(rewrite重定向/location定位等)
运维服务篇:Nginx常用功能(rewrite重定向/location定位等)2025-04-20 00:55:25 -
php定义变量规则不能包含哪些字符?2025-04-20 00:27:24