使用ToString()可以获得与使用String.Format相同的结果



不知道如何实现这个任务:

我需要像这个一样格式化一个十进制

 var formatted = String.Format("{0:G}%", numberOfDecimalType); 

因此,结果应该是数字格式的数字,后面有%符号。问题是我需要使用.ToString()方法来获得这个结果。我试过numberOfDecimalType.ToString("G%")和其他不同的变体,但对没有帮助

有可能吗?

您可以使用自定义数字格式字符串添加文字字符:

var formatted = numberOfDecimalType.ToString(@"#,##0.##%");

反斜杠确保%被视为文字字符,而不是特殊的格式化指令。

不过,请注意,这不是G精确替换,即,您可能需要调整#的数量以适应所需的小数位数。

您将无法使用单个ToString调用将"%"追加到末尾;您需要使用ToString格式化小数,然后单独附加百分号:

var formatted = numberOfDecimalType.ToString("G") + "%";

您可以简单地附加百分比,不是吗?

formatted = numberOfDecimalType.ToString("G") + "%";

相关内容

最新更新