我理解如何使用string.format函数将一些数字文本格式化为数字格式,如下所示:
TextBox1.Text = String.Format("{0:n}", "5000.52");
// Outputs: 5,000.52
但对我来说真正的问题是在某些计算中再次使用此格式化文本时:
Single y = Single.Parse(TextBox1.Text) * 123;
C#编译器抱怨并说:
System.FormatException: 'Input string was not in a correct format.'
所以,我需要知道解决这个问题的专业方法是什么,因为我真正关心我的应用程序性能。
答案 0 :(得分:4)
但对我来说真正的问题是再次使用此格式化文本 一些计算,C#编译器抱怨并说:
解决此问题的专业方法是将数字存储为数字,并仅将其格式化以用于显示目的。除非你真的别无选择(我怀疑),否则不要将数字转换成文本到数字。
var myAwesomeNumber = 5000.52f;
textbox1.Text = String.Format("{0:n}", myAwesomeNumber);
// do stuff with my awesome number again
myAwesomeNumber += 1;
如果你真的需要从文本中解析格式化的整数,那么你需要查看解析的各种重载
Single.Parse Method (String, NumberStyles, IFormatProvider)
转换指定样式中数字的字符串表示形式 和单一精度浮点的特定于文化的格式 等价数字。
看一下例子