对象和小数之间的转换

本文关键字:转换 之间 小数 对象 | 更新日期: 2023-09-27 17:56:25

为什么我不能将对象转换为十进制(代码如下,record["Cost"]等于1 (int))?

我收到以下错误

"无法拆箱记录["成本"]"

我将使用TryParse方法,但我不明白此错误的来源是什么。

cost = (decimal?) record["Cost"];

对象和小数之间的转换

record["Cost"] 的值是带盒的整数。 取消装箱转换仅允许您转换为相同的类型。(至少从广义上讲;有一些差异,但它们在这里无关紧要。

您应该做的是拆箱到int,然后转换为decimal?

cost = (decimal?) (int) record["Cost"];

或者,如果cost已经声明为类型 decimal? ,则可以使用隐式转换:

cost = (int) record["Cost"];