日期:2014-05-20  浏览次数:20426 次

如何解决float类型的2.3 插入到数据库时就成2.29999999999999这个问题?
如题 当然不能修改数据库字段的类型 类型是float 类型

------解决方案--------------------
float是单精度数啊 2.3是对的啊
------解决方案--------------------
你可以在用户输入后 然后在四舍五入一下 取小数点后一位小数

我现在从不用float类型 恶心死了 只用varchar和int
------解决方案--------------------
探讨
你可以在用户输入后 然后在四舍五入一下 取小数点后一位小数

我现在从不用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类型可以直接设置小数点后的小数位......
------解决方案--------------------
探讨
引用:
    float本就是近似值,它不是精確值。
    通俗點講float是有兩個值的,一個是Text,就是你在DB中看到的數字,如2.3,另一個則是Value,就是它真實的值,也就是2.299999999999.
    所以在做四舍五入、精確的Report、比較(只能用 <、>而不能用=)時請盡量避免使用float類型。建議使用Decimal類型或者Numeric類型。
    如果LZ不想改變類型可以嘗試這樣,select convert(num as decimal(10,3)) from tb


我以前也尝试你的看法 你的知道显示的时候看到的是2.3 但是我现在解决的是 插入的时候就要显示成2.3


------解决方案--------------------
lz如果插入后显示的是2.3,插入前是2.3吗?
------解决方案--------------------
探讨
引用:
引用:
    float本就是近似值,它不是精確值。
    通俗點講float是有兩個值的,一個是Text,就是你在DB中看到的數字,如2.3,另一個則是Value,就是它真實的值,也就是2.299999999999.
    所以在做四舍五入、精確的Report、比較(只能用 <、>而不能用=)時請盡量避免使用float類型。建議使用Decimal類型或者Numeric類型。
    如果LZ不想改變類型可以嘗試這樣,select convert(num as decimal(10,3)) from tb


我以前也尝试你的看法 你的知道显示的时候看到的是2.3 但是我现在解决的是 插入的时候就要显示成2.3


SQL codeselectconvert(YourColumnNameasdecimal(10,1))from YourtbName

------解决方案--------------------
探讨
    float本就是近似值,它不是精確值。
    通俗點講float是有兩個值的,一個是Text,就是你在DB中看到的數字,如2.3,另一個則是Value,就是它真實的值,也就是2.299999999999.
    所以在做四舍五入、精確的Report、比較(只能用 <、>而不能用=)時請盡量避免使用float類型。建議使用Decimal類型或者Numeric類型。
    如果LZ不想改變類型可以嘗試這樣,select convert(num as decimal(10,3)) from tb

------解决方案--------------------
带小数点的我全用DOUBLE
------解决方案--------------------
Decimal
------解决方案--------------------