用SQL语句,如何使Access数据库计算的字段的值保留为整数或特定的小数位数? (100分)

  • 主题发起人 主题发起人 lcl800
  • 开始时间 开始时间
L

lcl800

Unregistered / Unconfirmed
GUEST, unregistred user!
用SQL语句,如何使Access数据库计算的字段的值保留为整数或特定的小数位数?

1.如何使浮点数计算的结果变成整数。
例:我用update table1 set a=b/c,结果a的值变成5.12345678的形式,我想使a的值变成5,如何写SQL语句?
2.如何使浮点数计算的结果保留特定的小数位数。


aaaa
1.234
2.456546
3.6789
要变成:
1.2
2.5
3.7
用什么语句实现?


 
update table1 set a=cast(b/c as int)
 
也可以用
update table1 set a=convert(int,b/c)
这些是MS SQL SERVER中的函数
 
update table1 set a=round(a,0)
 
同意。也可以根据不同的数据库产品使用其自己的类似ROUND的函数,牺牲移植性换取较高效率
 
直接将他转为整形就解决
 

set a=ceiling(b/c)
 
无分挣了!
ss2000的两个做法是比较合适的,这是我识为最好的!
但ROUND及ceiling都无法可以做到你的效果,数值有所偏差哦!
 
我用update table1 set a=round(a,0)获得成功,解决了第一个问题。
下面再请各位朋友帮忙解决第二个问题:
如果access数据库中有多个小树为不同的数,如何使它保持相同的位数?

aaaa
1.234
2.456546
3.6789
要变成:
1.2
2.5
3.7
用什么语句实现?
 
使用Cast轉換類型如從浮點型轉成整數型:
declare @b int,@a float
set @b=(Cast @a as int)

截取固定小數位用Round函數如set @Price=Round(@Price,Len(@Price)-4,0)

具體一些細節的用法,看幫助文件就可以了
 
bes96261:
下列代码为什么错?
Gton:float

close;
sql.Text:='update ldtj set Gton=round(Gton,4,1)';
execSQL;
错误信息:


---------------------------
Debugger Exception Notification
---------------------------
Project ldgl2.exe raised exception class EOleException
with message '用于函数参数的个数不对 在查询表达式 'round(Gton,4,1)' 中。'.
Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
 
不要改变提问问题,否则别人看解答会莫名其妙。
对于这种随意改变问题的人,号召各位大富翁抵制,不要再回答
 
displayformat 0.00
formatfloat('0.00,fieldname)
 
'update ldtj set Gton=format(gton,'0.00')//round(Gton,4,1)
select format(gton,'0.00') from ldtj
 

ugvanxk:
用你的方法的确解决了显示的问题,但在报表输出时显示的又是含八位的浮点数。
如何办呢?
 
displayformat里0.00
 
bes96261 5
candyye 5
driver 20
ljsh2008
SS2000 20
ugvanxk 35
wangjiankang
zhengyue

 
后退
顶部