小编Ily*_*hin的帖子

SQL server 2005数值精度损失

调试一些与财务相关的SQL代码发现了数学(24,8)数学精度的奇怪问题.

在MSSQL上运行以下查询,您将获得A + B*C表达式结果为0.123457

SELECT A,B,C,A + B*C FROM(选择CAST(0.12345678 AS NUMERIC(24,8))AS A,CAST(0 AS NUMERIC(24,8))AS B,CAST(500 AS NUMERIC(24) ,8))AS C)T

所以我们失去了两个重要的符号.试图以不同的方式解决这个问题,我将中间乘法结果(即Zero!)转换为数字(24,8),这样可以正常工作.

最后一个有解决方案.但是我还有一个问题 - 为什么MSSQL以这种方式运行以及我的样本中实际发生了哪种类型的转换?

sql-server floating-point casting type-conversion floating-accuracy

5
推荐指数
1
解决办法
8885
查看次数

编写泛型类来处理内置类型

可能不太实用,但仍然很有趣.

有一些关于矩阵乘法的抽象问题我已经快速实现了一个int的矩阵,然后测试了我的假设.

在这里我注意到只是int矩阵不好,如果我偶尔想用十进制或双精度.当然,我可以尝试将所有人都加倍,但这不方便.

继续假设我们可以有一堆对象,我们可以添加和繁殖 - 为什么不在我的矩阵中使用它们?

所以,在考虑它将是一个Matrix类之后,我现在面临无法使用泛型T,我需要它来支持一些可以添加和相乘的接口.

问题是我可以覆盖我的类中的运算符,但我不能引入一个支持运算符的接口.我有一个内置类型的运算符,但仍然没有接口.

考虑到你不想复制工人阶级的身体,你会在这种情况下做什么?包装和隐式铸造对我没什么帮助,我对一个漂亮的解决方案很感兴趣.

谢谢.

.net c# oop generics

2
推荐指数
1
解决办法
854
查看次数