c# - 指定的转换无效( double 到 int)

标签 c# casting

这里我需要将 double 转换为整数。

示例:

obj.DayDifference = !string.IsNullOrEmpty(reader["DateDiff"].ToString()) ?   
               (Int32)reader["DateDiff"] : 0;

类型:

  • DayDifference 类型 int

  • 数据库表 double 类型的
  • DateDiff

错误:

Specified cast is not valid

最佳答案

你所做的等同于:

object x = 32.5;
int y = (int) x;

你不能这样做 - 当你拆箱时,你必须拆箱到值 1 的实际类型。

所以你需要:

object x = 32.5;
int y = (int) (double) x;

转换为 double 拆箱,转换为 intdouble 转换为 int。您可以在代码中执行相同的操作:

(Int32)(Double) reader["DateDiff"] : 0;

1 好吧,取模一些东西。 CLR 允许您将 int 拆箱为 uint 或具有底层类型 int 的枚举类型,等等。

关于c# - 指定的转换无效( double 到 int),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24949276/

相关文章:

c# - 如何为 IIS 上托管的 WCF 服务指定端点地址?

c# - 在 linq 查询中转换泛型类型

Java readObject 和继承的转换

java - 将父对象转换为子对象 - BufferedImage 对象

c# - 是否加锁 : Parallel String Concatenation

c# - 自动将所有控件属性从 resx 文件移动到 Designer.cs 代码文件

c# - WPF - 设置 IsOpen=true 时工具提示数据绑定(bind)不起作用

c - strcat C 不打印和 int 到 char*

java - 检查扩展类是否是接口(interface)的实例

c# - 将消息移至 azure servicebus 中的 'deadletter '