如何解析string.Format的结果

时间:2010-07-15 07:15:41

标签: c# .net parsing formatting

假设我有一个数字(例如double)并使用某个格式字符串将其转换为字符串变量:

var str = string.Format("{0:0%}", 0.256);

(str变量的内容在这种情况下是"26%")。有没有办法将这个字符串解析回数字?

我知道根据格式字符串,无损转换可能是不可能的 - 就像在这种情况下0.26是我能得到的最好的因为一些信息(小数点后三位)只是丢失了格式化。但即使从格式字符串0.26和字符串"{0:0%}"的组合中获取26%,如果以某种自动方式可行,也会很棒。

2 个答案:

答案 0 :(得分:3)

我相信RegEx是您的最佳标准工具。 .net有很多scanf个实现,但我认为编写自己的正则表达式会更好。

答案 1 :(得分:1)

您的值属于某种类型(intdoubledecimal)。所有这些函数都有Parse()TryParse()函数,如Decimal.Parse()。并且说,这个数字的格式是什么(例如逗号的不同用法以及英语和德语中的点数),您可以提供IFormatProvider(最简单的CultureInfo}。

更新

经过一番搜索后,我在SO上找到了这些问题:

并且在网上搜索也没有透露任何有用的东西。因此,在.Net框架中,这似乎是一个非常缺少的功能,您可以做的就是为自己编写一些内容(或者在上面的问题中采用一种建议的解决方案)。

很抱歉,对于我的第一个错误的答案,但似乎并没有真正存在(.net框架)框中的内容。