假设我有一个数字(例如double)并使用某个格式字符串将其转换为字符串变量:
var str = string.Format("{0:0%}", 0.256);
(str变量的内容在这种情况下是"26%"
)。有没有办法将这个字符串解析回数字?
我知道根据格式字符串,无损转换可能是不可能的 - 就像在这种情况下0.26
是我能得到的最好的因为一些信息(小数点后三位)只是丢失了格式化。但即使从格式字符串0.26
和字符串"{0:0%}"
的组合中获取26%
,如果以某种自动方式可行,也会很棒。
答案 0 :(得分:3)
我相信RegEx是您的最佳标准工具。 .net有很多scanf个实现,但我认为编写自己的正则表达式会更好。
答案 1 :(得分:1)
您的值属于某种类型(int
,double
,decimal
)。所有这些函数都有Parse()
或TryParse()
函数,如Decimal.Parse()。并且说,这个数字的格式是什么(例如逗号的不同用法以及英语和德语中的点数),您可以提供IFormatProvider
(最简单的CultureInfo
}。
经过一番搜索后,我在SO上找到了这些问题:
并且在网上搜索也没有透露任何有用的东西。因此,在.Net框架中,这似乎是一个非常缺少的功能,您可以做的就是为自己编写一些内容(或者在上面的问题中采用一种建议的解决方案)。
很抱歉,对于我的第一个错误的答案,但似乎并没有真正存在(.net框架)框中的内容。