在我的網站上,我需要從XML讀取數據,其中一些數據是十進制值。 有時值來正確:1
或72,59
有時值來像1.0000
或72,590000
,如何將其轉換爲正確的格式的最佳方式:如何處理字符串中的正確的零到十進制轉換?
PS:我需要一個字符串值。
謝謝!
在我的網站上,我需要從XML讀取數據,其中一些數據是十進制值。 有時值來正確:1
或72,59
有時值來像1.0000
或72,590000
,如何將其轉換爲正確的格式的最佳方式:如何處理字符串中的正確的零到十進制轉換?
PS:我需要一個字符串值。
謝謝!
你想讓他們去哪種格式,具體是?多少小數等?
如果你想永遠2位小數,儘量標準的數字格式,如:
decimal value = 123.456;
Console.WriteLine("Your account balance is {0:F}.", value);
看到其他常見的數字格式化技術this MSDN的例子。
如果我正確地讀你的答案,你想轉換成整數你從一個XML文件轉換爲字符串值拉沒有尾隨零(「PS:我需要一個字符串值」)
驗證碼:
decimal test = 20.000000m
test.ToString("G29");
可以做你想做的
你寫你的努力
string.Format("{0:F}","1.00000");
這樣做的問題是,您將string
傳遞給該函數。數字格式僅適用於數字數據類型。先將該值轉換爲小數點後再進行格式化。
試試這個
public string ReformatDecimalString(string input)
{
const string formatString = //something
var decimalValue = decimal.Parse(input);
return decimalValue.ToString(formatString);
}
當你格式化一個數值,它是稍微更有效地使用x.ToString(formatString)
比string.Format(formatString, x)
。但請注意,在這兩種情況下,特定的格式字符串會有所不同。
如果輸入的數據有小數點(不是逗號)和計算機的使用文化小數逗號,你應該能夠通過使用CultureInfo.InvariantCulture正確解析值:
var decimalValue = decimal.Parse(input, CultureInfo.InvariantCulture);
@phoog我試過串.Format( 「{0:F}」, 「1.00000」);它不工作。輸出相同的字符串 – gog
這是因爲你正在傳遞一個字符串到函數中。數字格式僅適用於數字數據類型。先將該值轉換爲小數點後再進行格式化。 – phoog