从格式字符串中确定小数位数的好方法是什么?

时间:2010-11-03 17:13:28

标签: .net formatting numbers double decimal

我想要一个看起来像这样的函数:

int GetDecimalPlaces(string format, IFormatProvider formatProvider = null);

输入与可以合法传递给负责格式化数字的方法的输入完全相同,例如double.ToStringdecimal.ToString

输出为int,表示格式字符串所需的最小小数位数。

所以这里有一些我期望的输入/输出示例(我们只是说formatProvidernull作为当前正在使用的文化中的结果}:

Input | Output
------|-------
N2    | 2
0     | 0
0.000 | 3
g     | 0
0.0## | 1

如果可能的话,我想以“正确”的方式做到这一点;即没有黑客攻击。但如果我必须破解,我也会感谢好的黑客建议;)

2 个答案:

答案 0 :(得分:1)

可能最简单的方法是取一个整数,如1,然后格式化,然后解析字符串以计算小数位数。我想这可以作为一个黑客,但它应该可靠地工作。

答案 1 :(得分:0)

为什么不转换为字符串,然后搜索分隔符字符位置。从字符串的长度中减去此值。 再次可能是一个黑客但是???