怎么解决float类型的2.3 插入到数据库时就成2.29999999999999这个有关问题
如何解决float类型的2.3 插入到数据库时就成2.29999999999999这个问题?如题 当然不能修改数据库字段的类型
如何解决float类型的2.3 插入到数据库时就成2.29999999999999这个问题?
如题 当然不能修改数据库字段的类型 类型是float 类型
[解决办法]
float是单精度数啊 2.3是对的啊
[解决办法]
你可以在用户输入后 然后在四舍五入一下 取小数点后一位小数
我现在从不用float类型 恶心死了 只用varchar和int
[解决办法]
[解决办法]decimal
[解决办法]用decimal吧
[解决办法]LZ可以看下,数据变化的时机:
1. 在SQL语句里,值已经发生变化,这种问题可以通过程序控制
2. SQL语句执行后,值发生变化,这个部分属于系统问题了
[解决办法]你把整条记录取出来,然后单独修改浮点数的值,最后再把它更新到数据库中就行了
[解决办法] float本就是近似值,它不是精確值。
通俗點講float是有兩個值的,一個是Text,就是你在DB中看到的數字,如2.3,另一個則是Value,就是它真實的值,也就是2.299999999999.
所以在做四舍五入、精確的Report、比較(只能用<、>而不能用=)時請盡量避免使用float類型。建議使用Decimal類型或者Numeric類型。
如果LZ不想改變類型可以嘗試這樣,select convert(num as decimal(10,3)) from tb
[解决办法]我也间碰到同样的问题,关注
[解决办法]decimal
[解决办法]Decimal类型可以直接设置小数点后的小数位......
[解决办法][解决办法]lz如果插入后显示的是2.3,插入前是2.3吗?
[解决办法][解决办法][解决办法]带小数点的我全用DOUBLE
[解决办法]Decimal
------解决方案--------------------
[解决办法]用于表示浮点数字数据的近似数字数据类型。浮点数据为近似值;并非数据类型范围内的所有数据都能精确地表示。
语法
float [ ( n ) ]
从 - 1.79E + 308 到 1.79E + 308 之间的浮点数字数据。n 为用于存储科学记数法 float 数尾数的位数,同时指示其精度和存储大小。n 必须为从 1 到 53 之间的值。
[解决办法]