我在Oracle和t-sql中选择了相同的查询,我有点困惑
答案恰恰相反。
(我对浮点数和小数点之间的差异感兴趣)
一些解释?
T-sql:
DECLARE @A decimal(30,20);
DECLARE @b float(10);
set @A=100
set @b=100
select
@A/3 + @A/3 + @A/3 as decimal,
@b/3 + @b/3 + @b/3 as float
Oracle:
Declare flt Float;
dcm Decimal(30,20);
Begin
flt:=100;
dcm:=100;
flt:=flt/3+flt/3+flt/3;
dcm:=dcm/3+dcm/3+dcm/3;
dbms_output.put_line(flt);
dbms_output.put_line(dcm);
End;
答案 0 :(得分:0)
计算机科学中的FLOAT是近似值,您可以阅读:Is floating point math broken?
TSQL中的十进制值就像2整数之间有一个点,因此它的确切值但需要更多空间。 我将始终建议您使用数据库中的十进制值。