它好像的String.Format不会格式的字符串作为输入。我是不是做错了什么,或者这只是本地的行为?

输入:0.37

这是行不通的。

string x = String.Format("{0:P}", myString)

输出:0.37

此一样。

string x = String.Format("{0:P}", Convert.ToDecimal(myString))

输出:37.00%

有帮助吗?

解决方案

相信这是预期的关于'复合格式的行为。

您第一示例试图数值格式规则应用到的字符串。你的第二个例子是试图数值格式规则适用于一些可以有小数位。

请参阅本文MSDN上了解信息。

其他提示

您正试图只适用的格式选项可用于数字。没有在.NET智能串的概念,其中,CLR检查要类型的字符串。

  

难道我做错了什么,或者这只是本地的行为?

这是原生的行为。它基本上不Format的工作来解释字符串输入。 Format假定用户提供正确的数据 - 在你的情况下,的数字的数据。字符串是不是数字,即使它的代表的一个数字(这是CS的值/语义及其表示/语法之间的所有重要的区别!)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top