sqlserver数据的float型的问题??

dxinyan 2005-08-22 10:03:47
在数据库中有一个表字段的类型为float
在表中有如下数据:23.3, .98
当我在程序中输入23,然后用数据库中的23.3-23正常的情况下应等于.3,但是数据库中的
结果确是:.30000000000045
如果用23.3-10的话结果是:13.3是正确的。
不知道为什么?怎样解决?
...全文
308 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
点点星灯 2005-08-22
  • 打赏
  • 举报
回复
declare @f float
set @f=23.3-23
select @f


declare @f1 decimal(18,3)
set @f1=23.3-23
select @f1
点点星灯 2005-08-22
  • 打赏
  • 举报
回复
用数据类型
decimal(p,s)

定义 decimal 的列、变量和参数的两种特性如下:

p
指定精度或对象能够控制的数字个数。

s
指定可放到小数点右边的小数位数或数字个数。

p 和 s 必须遵守以下规则:0 <= s <= p <= 38。

numeric 和 decimal 数据类型的默认最大精度值是 38。在 Transact-SQL 中,numeric 与 decimal 数据类型在功能上等效。

当数据值一定要按照指定精确存储时,可以用带有小数的 decimal 数据类型来存储数字。

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧