我认为以这种格式声明和初始化浮点数是合法和传统的:
float someVariable = 12.502D; (or M, F does not give a compiler error).
Run Code Online (Sandbox Code Playgroud)
但是我收到编译器错误:
double类型的文字不能隐式转换为'float'类型; 使用'F'后缀来创建此类型的文字.
C#中有三种浮点数,对吧?
为了修复编译器错误,我明确地使用了赋值语句:
float SomeVariable = (float) 12.525D;
Run Code Online (Sandbox Code Playgroud)
在这种情况下我做对了吗?什么是传统或正确的方法来声明和初始化由Double或Decimal值组成的浮点变量?
在更简洁的英语中,编译器为文本字符串12.502假定的默认类型是double.双倍是浮子大小的两倍,就像一个夸脱不能放入一个品脱,双倍不能存储在浮子中,除非你做一个演员,这可能会失去精度.
您可以通过添加F或f后缀来告诉编译器12.502实际上是一个浮点数,如下所示:
float someVariable = 12.502f;
Run Code Online (Sandbox Code Playgroud)
要么:
double someVariable = 12.502;
Run Code Online (Sandbox Code Playgroud)