我在另一篇文章中注意到有人做了类似的事情:
double d = 3.1415;
int i = Convert.ToInt32(Math.Floor(d));
Run Code Online (Sandbox Code Playgroud)
他们为什么使用转换函数,而不是:
double d = 3.1415;
int i = (int)d;
Run Code Online (Sandbox Code Playgroud)
它有一个隐含的底层和转换.
另外,更关注的是,我在一些生产代码中注意到我正在阅读:
double d = 3.1415;
float f = Convert.ToSingle(d);
Run Code Online (Sandbox Code Playgroud)
这是一样的:
float f = (float)d;
Run Code Online (Sandbox Code Playgroud)
是否所有这些隐式转换只是在Convert类中是为了完整性,还是它们是否有用?我可以理解需要.ToString(),但不是其他的.
Mic*_*rry 12
转换为int是隐式截断,而不是隐式地板:
double d = -3.14;
int i = (int)d;
// i == -3
Run Code Online (Sandbox Code Playgroud)
我选择Math.Floor或Math.Round来使我的意图更明确.