0
我有一个将csv文件加载到sqlserver表的SSIS项目。在将具有两位小数位的字段加载到float
列时,它会增加位数并更改列值。加载浮动字段时SQL Server SSIS增加位数
作为示例,csv字段值为173.76
,但表值为173.759994506836
。
这是怎么发生的?
CSV连接属性是;
- 区域设置:土耳其语(土耳其)
- 代码页:1252
- 数据类型:浮[DT_R4]
我有一个将csv文件加载到sqlserver表的SSIS项目。在将具有两位小数位的字段加载到float
列时,它会增加位数并更改列值。加载浮动字段时SQL Server SSIS增加位数
作为示例,csv字段值为173.76
,但表值为173.759994506836
。
这是怎么发生的?
CSV连接属性是;
float的数据类型是一个近似值。请将您的数据类型更改为更准确的值,或者 - 在导入期间将值转换为nn.nnn。
感谢您的回答。它缺乏关于浮点数据类型的知识。以下是维基百科的定义[链接](https://en.wikipedia.org/wiki/Floating_point) –
不要在SQL Server中使用'FLOAT' - 使用'DECIMAL(p,s)'有精确的数字..... –
谢谢marc_s,我会这样做的。 –