将双精度型转换为字符串

本文关键字:字符串 转换 双精度型 | 更新日期: 2023-09-27 18:03:47

当我在下面的方法中删除ToString()时,我没有得到错误,那么为什么有必要呢?

public string BuildEquation()
{
    switch (Choice)
    {
        case "A":
            return mNumber1.ToString() + "+" + mNumber2.ToString();
        case "S":
            return mNumber1.ToString() + "-" + mNumber2.ToString();
        case "M":
            return mNumber1.ToString() + "*" + mNumber2.ToString();
        default:
            return mNumber1.ToString() + "/" + mNumber2.ToString(); // corrected
    }
}

将双精度型转换为字符串

来自c#语言规范1.2,§7.7.4,加法运算符:

字符串连接:二进制+操作符执行字符串当一个或两个操作数为字符串类型时进行串联。如果一个字符串连接的操作数为null,空字符串为代替。否则,任何非字符串参数都将被转换为其通过调用虚拟ToString方法实现字符串表示继承自类型对象。如果ToString返回null,一个空字符串被替换。[…系统。可能会抛出OutOfMemoryException没有足够的可用内存来分配结果字符串。

换句话说,+操作数将为您完成ToString转换。

那么为什么它是必要的呢?

没必要。

有些人可能主观地认为包含它更具有可读性,但是省略它不仅不会导致任何错误,而且还会产生完全相同的输出。省略ToString调用不会改变功能。

doublestring连接在一起为您转换。

否则可以用.ToString()

转换

或者使用Convert.ToString(double)方法。http://msdn.microsoft.com/en-us/library/c309e6c9.aspx

这是因为您已经与字符串("+","-"等)连接,这意味着表达式的其余部分被解析为字符串类型。如果您没有连接这些额外的字符串,那么您需要调用ToString() .