首页 > 解决方案 > C#:将双精度数隐式转换为浮点数?

问题描述

我知道在 C# 中默认情况下不允许从 double 到 float 的隐式转换,但是有什么方法可以启用这种转换吗?有某种编译指示?我不担心缺乏精度(因为我的应用程序在任何地方都不需要超过浮点精度),而且只是对必须始终确保我将所有十进制值明确声明为浮点数感到恼火,否则我会得到编译错误。

标签: c#doubleimplicit

解决方案


不,你不能。由于这种转换可能会导致精度损失,并且编译器无法确定它是否会发生,因此您必须明确表示您知道转换。

我不确定“将小数显式声明为浮点数”是什么意思,但如果你现在没有,你可以通过f在末尾添加一个来判断文字是浮点数

float a = 0.0;  // Wrong, implicit conversion.
float b = 0.0f; // OK. Can also be capital 'F'.

但是,如果您抱怨到处添加这封信作为负担,那么对不起,答案是否定的,您无法解决这个问题。


推荐阅读