读书人

怎么解决float类型的2.3 插入到数据库

发布时间: 2012-02-02 23:57:14 作者: rapoo

如何解决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
------解决方案--------------------


探讨
引用:
引用:
引用:
引用:
    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


一Table取然后Inert另一Table
SQL codeinsertinto tableBselectconvert(YourColumnNameasdecimal(10,1))from YourtbName



你的意思是我这边还需要建一张表麽?

[解决办法]
用于表示浮点数字数据的近似数字数据类型。浮点数据为近似值;并非数据类型范围内的所有数据都能精确地表示。
语法
float [ ( n ) ]
从 - 1.79E + 308 到 1.79E + 308 之间的浮点数字数据。n 为用于存储科学记数法 float 数尾数的位数,同时指示其精度和存储大小。n 必须为从 1 到 53 之间的值。


[解决办法]
探讨
我的数据是从程序中手动输入的

通过model 存入到库中 如果是这样的话 那么修改的时候如何操作? 修改floate 这个类型的字段的值,那麽 那个值该如何处理呢?

读书人网 >asp.net

热点推荐