表:
create table float_dt_test
(
cola float,
colb float
);
插入:
insert into float_dt_test values(57,999.857894736842);
insert into float_dt_test values(0.225,999.99);
我想使用SSIS将给定的数据导出到
.txt
文件中。我想将值导出为6。
txt文件中的预期输出:
Cola Colb
-------------------------------------------
57 999.857895
0.225 999.99
为此,我写了以下查询:
SELECT ROUND(Cola,6) as cola,
ROUND(Colb,6) as colb
FROM float_dt_test;
但是获取导出文件后,看起来像:
Cola Colb
-------------------------------------------
57 999.85789499999998
0.22500000000000001 999.99000000000001
最佳答案
四舍五入值不会更改内部表示。
四舍五入后,转换为小数:
SELECT CONVERT(DECIMAL(10, 6), ROUND(Cola, 6)) as cola,
CONVERT(DECIMAL(10, 6), ROUND(Colb, 6)) as colb
FROM float_dt_test;
实际上,
ROUND()
现在是多余的。保留它不会造成任何危害,因为这会使操作变得明确。