所以看来,如果你
CAST(field1 as decimal) field1
这将自动添加舍入。
原始定义为:
field1类型:浮点长度:8精度:53
我需要将其强制转换为十进制,因为我需要实体框架层才能将此字段生成为十进制(而不是双精度)。
有没有一种方法可以将其转换为十进制格式,从而保留原始精度,并且不会四舍五入?
我想避免不得不在转换中声明精度,因为:
你有没有尝试过:
SELECT Cast( 2.555 as decimal(53,8))
这将返回2.55500000。那是你要的吗?
2.55500000
更新:
显然,您也可以使用SQL_VARIANT_PROPERTY查找值的精度和小数位数。例子:
SELECT SQL_VARIANT_PROPERTY(Cast( 2.555 as decimal(8,7)),'Precision'), SQL_VARIANT_PROPERTY(Cast( 2.555 as decimal(8,7)),'Scale')
退货 8|7
8|7
您可能可以在转换过程中使用它…