2010-11-03 74 views
1

我想要的功能,看起來像這樣:從格式字符串中確定小數位數的好方法是什麼?

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 

如果可能的話,我願意做的這是「正確」的方式;即沒有黑客。但是,如果黑客必須這樣,我還希望黑客的建議;)

回答

1

也許最簡單的方法是取整數,如1,並格式化,然後解析字符串以計算小數點數地方。我想這可以作爲黑客,但它應該可靠地工作。

0

爲什麼不轉換爲字符串,然後搜索分隔符字符的位置。從字符串的長度中減去此值。 再次可能的黑客,但???

相關問題