显然,SQL 浮点数与 C# Doubles 相同并不完全正确,因为它们不能保存 Infinity 的值。
我有一个非常简单的数学模型来处理概率和回报期。
什么时候
Double Probability = 0d
,
然后根据定义:
Double ReturnPeriod = Double.PositiveInfinity
当这些属性映射到插入命令的浮点参数时,我在尝试执行该过程时在 DataService 级别收到错误:
传入的表格数据流 (TDS) 远程过程调用 (RPC) 协议流不正确。参数 134 ("@RETURNPERIOD"):提供的值不是浮点数据类型的有效实例。检查源数据中的无效值。无效值的一个示例是小数位数大于精度的数值类型数据。
我该如何解决这个问题?我不想诉诸于任何荒谬的事情,例如更改架构以存储 ReturnPeriods 的字符串表示,或者为每个浮点添加辅助列以存储它是 +Inf、-Inf 还是 NaN。
像这样的2006 年旧帖子并没有真正帮助我。