c# - 将 0.0 转换为 double 有什么问题?

标签 c# casting .net

当我尝试将 0.0 转换为 double 时出现 InvalidCastException,为什么会这样?当我改为执行 (float)value 时没问题。

alt text

最佳答案

一般来说,当您将值类型放入对象(称为装箱)时,您需要将它拆箱完全相同的值类型。您不能改为转换为另一种类型。这就是这里发生的事情。

如果你真的想转换对象,你首先需要将它拆箱。假设您的原始值是一个 float,然后再将其装箱到 object 中:

double d = (double) (float) value;

或者使用别人提出的方法,使用Convert。这样做的好处是不必知道原始类型。

关于c# - 将 0.0 转换为 double 有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4113056/

相关文章:

java - 从 Interface<Type> 到 Interface<Subtype> 的适配器

c++ - MFC 类和 C++ 样式转换

.net - 在 .NET 核心中实现 RSA

c# - C# 的分词器?

c# - 检查数据库中的重复数据 (C#)

c# - 从外部域 (AWS S3) 加载图像并将其存储在浏览器内存中

c# - 将文本加载到数据 GridView

c# - 在 C# 中连接两个 json 字符串

sql - 如何在sqlite3中输入cast

c# - 将图像转换为不同格式后,应用程序不断返回空文件