Some_Variable 具有从数据库返回的值 295523.93。[DataType:money(Transact-SQL数据类型。使用的数据库是SQL2005)]
- (十进制)Some_Variable 给出值 = 295523.93 [数据类型:十进制]
- (float)Some_Variable 给出值 = 295523.938 [DataType: float]
- (decimal)((float)Some_Variable) 给出值 = 295523.9 [DataType: decimal]
- Convert.ToDecimal((float)Some_Variable) 给出值 = 295523.9 [DataType: decimal] (
- (decimal)((double)Some_Variable) 给出 value = 295523.93 [DataType: decimal]
- Convert.ToDecimal((double)Some_Variable) 给出 value = 295523.93 [DataType: decimal]
为什么以下在极少数情况下会给出 295523.9(由于项目运行超过 2 年而出现一次)
- Convert.ToDecimal((float)Some_Variable) 给出 value = 295523.9 [DataType: decimal]
我正在考虑使用(decimal)Some_Variable ,它给出 value = 295523.93,但是除了与数字如何存储在内存中(二进制)有关之外,是否还有其他解释?
[编辑]:虽然实际值来自数据库,但为了重现问题,我在下面的示例中直接为其分配了值。请在下面的代码屏幕截图和 Watch 窗口中找到。