SQL SEVER中无法存储8.00这样的数据,请问怎么处理!
问题是这样的:
SQL中将8.00 存储起来就成为了 8
系统查询结果为 8 我想得到8.00 怎么办?
一般来说 像: 8.01 这些可以得到!
因为使用delphi 的控件直接显示数据需要 显示8.00 请问怎么办?
[解决办法]
Why not?
declare @t table(num numeric(5,2))
insert into @t select 8
select * from @t
/*
num
-------
8.00
*/
[解决办法]
对于整型数据,可以用函数强制转换其类型:
select rtrim(cast(8 as numeric(5,2))) as num
[解决办法]
select str(12.3,10,2)-- 12.30 --10是整个的宽度,2是小数点后的位数
[解决办法]
数据类型不对吧
[解决办法]
ls:应该加上ltrim
select ltrim(str(12.3,10,2))
[解决办法]
但是: 使用delphi 的控件直接显示数据需要 显示8.00 请问怎么办?
-------------------------------------------------
如果是控件本身的问题,最无奈的选择就是将所有的数据转换为字符类型,保留两位小数位,如:
select rtrim(cast(8 as numeric(5,2))) as num
[解决办法]
楼主应该在客户端程序上设置格式
转成字符型再在客户端上显示,并不是好办法.
[解决办法]
还没解决,请问什么控件
[解决办法]
使用delphi 的控件直接显示数据需要 显示8.00 请问怎么办?
这与数据库没有多大关系的,程序端显示问题。看看 delphi的控件有没有format or outformat属性来格式化显示结果。
[解决办法]
在数据库里获取出来就是8.00不就成了
[解决办法]
绑定数据源也不会有问题啊
[解决办法]
怎么会没问题,试试先
[解决办法]
在表中,定义该栏位的数据类型为numeric(x,y) y为小数位数
[解决办法]
SQL中将8.00 存储起来就成为了 8
------------------------------
你的数据类型定义的有问题
其他的楼上说的比我知道的还清楚
[解决办法]
借LZ地盘问一个问题:
select cast(0 as numeric(5,2)) as num 显示:.00
select rtrim(cast(0 as numeric(5,2))) as num 显示:0.00
原因是为什么呢?多谢解答
[解决办法]
select cast(.00 as varchar(10))--只知道数字转字符会在个位上把0补上
[解决办法]
数据类型不对吧
[解决办法]
Mark!
[解决办法]
如果是在DELPHI中,
一个方法是,在dataset 中增加列设置,在列属性中设置displayformat,
或则使用其他控件,比如dbgrideh等,可以直接设置显示模式
[解决办法]
前台處理的問題,delphi本來就可以設置
[解决办法]
如果是在DELPHI中,
一个方法是,在dataset 中增加列设置,在列属性中设置displayformat
------解决方案--------------------
楼主,在Delphi的数据集控件中把字段添加进去,选择你想要显示#.##格式的字段(数字类型),然后
在DisplayFormat中填入你想要的格式不就OK了