一个字段aa值为2950,另一字段bb值为414379.69,字段cc值为8.34
aa bb cc
2950 414379.69 8.34
在计算时,需用aa/(bb+cc),得到保留小数点后9位值,即:2950/(414379.69*8.34)=0.000853606,否则后续计算会出现差异,原 aa,bb,cc字段类型为DECIMAL(19,5).当前计算后得到值为0.000853,为此,请教各位高手,如何将此计算字段的值保留到小数点后9位,另经convert转换小数点后长度也不行.CONVERT(DECIMAL(30,9),(aa/(bb+cc)) 的结果为:0.000853000.
------解决方案--------------------
--> 测试数据:[huang]
if object_id('[huang]') is not null drop table [huang]
go
create table [huang]([aa] int,[bb] numeric(8,2),[cc] numeric(3,2))
insert [huang]
select 2950,414379.69,8.34
--------------开始查询--------------------------
SELECT CAST(CAST([aa] AS NUMERIC(19,9))/(CAST(cc AS NUMERIC(19,9))*CAST([bb] AS NUMERIC(19,9)))AS NUMERIC(19,9))
from [huang]
----------------结果----------------------------
/*
---------------------------------------
0.000853606
*/