Son*_*oul 26 sql sql-server casting
所以看来,如果你
CAST(field1 as decimal) field1
Run Code Online (Sandbox Code Playgroud)
这将自动添加舍入.
原文定义为:
field1类型:float length:8 prec:53
我需要将它转换为十进制,因为我需要我的实体框架层生成此字段为十进制(而不是双)
有没有办法将其转换为十进制,以便它保留原始精度,而不是圆?
我想避免必须在演员表中声明精度,因为1.有100个字段涉及不同的精度,1.如果基础表在将来发生变化,它可能会导致无法预料的错误出现,3.使管理变得更加困难
Abe*_*ler 51
你有没有尝试过:
SELECT Cast( 2.555 as decimal(53,8))
Run Code Online (Sandbox Code Playgroud)
这会回来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')
Run Code Online (Sandbox Code Playgroud)
回报 8|7
您可以在转换过程中使用此功能...
| 归档时间: |
|
| 查看次数: |
240266 次 |
| 最近记录: |