【发布时间】:2016-04-04 21:31:30
【问题描述】:
我正在尝试将计算从 C# 迁移到 TSQL,但在达到所需的精度水平时遇到了一些困难。插入了一些有问题的变量的公式示例如下:
( 6.4 + ( 10 - 6.4 ) * 0.5 ) * 0.75
当我在 C# 中执行此操作时,我得到了结果 6.1499999999999995。
但是,如果我在 TSQL 中选择它,它会四舍五入为 6.1500。
有什么方法可以在 TSQL 中实现更高级别的精度?
【问题讨论】:
-
我认为SQL Server的回答是正确的。
-
我很高兴承认这一点。问题是我正在实现的计算需要 C# 样式的结果。
-
您在 C# 中的数据类型是什么?如果您在 C# 中使用浮点类型,则它不准确。始终使用小数。顺便说一句,您的陈述中没有除号 (/),为什么您认为 6.149999999 是正确的?!
-
我不认为我瞄准的数字更准确。但是,我确实需要获得该数字,因为我试图重现的算法假定了 c#/javascript 样式的不准确性。也许有一天,我将在事件响应和安全团队论坛上获得足够的吸引力,从而提出更好的路径。但在那之前,我一直在寻找一种让 sql 在这种情况下表现得更像 c#/javascript 的方法。
标签: c# sql sql-server tsql