2011-01-20 171 views
2

我有一些字符串,例如:格式化長字符串轉換爲短字符串C#

1.5555555555555
2.3421354325435354545
4.509019292

我想將它們格式化爲一個字符串,如:

1.5555
2.3421
4.5090

我試圖使用C#String.Format,但無法正確工作。

有人可以請給我正確的C#語句來完成這個?

謝謝。

+0

你有什麼企圖?具有數字格式字符串(如g或f)的string.Format()取決於輸入值是數字(十進制,浮點數,雙精度)。所以你必須先解析你的數字串。如果你只是想不捨入舍位,你總是可以使用string.Substring()。 – 2011-01-20 18:37:02

+0

你也有類似1003.1543234的字符串嗎?這些格式應該如何處理? – 2011-01-20 18:47:01

+0

這些不是字符串,它們是小數,你的描述是不正確的,並且會導致誤導性 – JrBriones 2015-07-16 17:04:45

回答

3

目前還不清楚,如果你將永遠被處理的數值。如果你想避免解析字符串爲數字,你可以嘗試這樣的事:

public static string TrimTo(string str, int maxLength) 
{ 
    if (str.Length <= maxLength) 
    { 
     return str; 
    } 
    return str.Substring(0, maxLength); 
} 

這將提供的字符串修剪六個字符,如果是超過六更長。這似乎是你想要的,但(如凱斯指出),會做一些意想不到的事情,像「1234567.890」字符串。

這裏有條件的條款是必要的,因爲String.Substring會抱怨,如果第二個索引超出字符串(如果字符串短於maxLength換句話說)。

(如果你周圍的C#3.0 extension methods都玩過,你可能會爲一個極好的機會,認識到這一點,從上面略加修改,:string trimmed = s.TrimTo(10);

0

如果轉換字符串雙打您可以使用String.Format指定在將其重新格式化爲字符串時要包含的小數位數。

String.Format("{0:0.0000}", double.Parse("1.55555555555555"))