【问题标题】:Convert double to float by cast or Convert.ToSingle()?通过 cast 或 Convert.ToSingle() 将 double 转换为 float?
【发布时间】:2021-06-21 14:29:43
【问题描述】:

在 C# 中,我可以通过演员 (float)Convert.ToSingle() 将双精度数转换为浮点数。

double x = 3.141592653589793238463;
float a = (float)x;
float b = Convert.ToSingle(x);

ab 相等。

这两种技术有什么不同吗?我应该更喜欢哪一个?为什么?

【问题讨论】:

    标签: c# .net casting type-conversion


    【解决方案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# 中的强制转换运算符完全相同的语义。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多