通过 cast 或 Convert.ToSingle() 将 double 转换为 float?
Posted
技术标签:
【中文标题】通过 cast 或 Convert.ToSingle() 将 double 转换为 float?【英文标题】:Convert double to float by cast or Convert.ToSingle()? 【发布时间】:2021-06-21 14:29:43 【问题描述】:在 C# 中,我可以通过演员 (float)
或 Convert.ToSingle()
将双精度数转换为浮点数。
double x = 3.141592653589793238463;
float a = (float)x;
float b = Convert.ToSingle(x);
a
和 b
相等。
这两种技术有什么不同吗?我应该更喜欢哪一个?为什么?
【问题讨论】:
【参考方案1】:来自.NET reference source:
public static float ToSingle(double value)
return (float)value;
所以,你的答案是它们在底层是完全相同的。
两者之间的任何偏好严格来说都是个人风格选择。就我个人而言,我总是会使用演员表,因为它更短,而且对我来说似乎更惯用。
【讨论】:
由于似乎根本没有任何理由使用 ToSingle,所以这不是个人选择,而是客观上更好地使用演员表。Convert
类旨在成为在 .NET Framework 的不同基类型之间进行转换的与语言无关的方式。并非所有在 .NET 上运行的语言实际上都有像 C# 这样的强制转换运算符。例如:在 VB.NET 中,您有 CType()、CDbl()、DirectCast() 和隐式转换,它们都没有与 C# 中的强制转换运算符完全相同的语义。以上是关于通过 cast 或 Convert.ToSingle() 将 double 转换为 float?的主要内容,如果未能解决你的问题,请参考以下文章