1
是否有一種將double轉換爲字符串的優雅方式,因此它被舍入到最大總長度內,但在其他方面類似於默認的中性文化格式?限制雙字符的最大字符數
我不想只限制小數位數,因爲用於符號和指數的字符數可能會改變,或者它可能不是科學記數法。
例如,具有最多20個字符
-1.23456789E-67
應顯示爲
-1.23456789E-67
而
123
應顯示爲123
,不1.23E+02
。
是否有一種將double轉換爲字符串的優雅方式,因此它被舍入到最大總長度內,但在其他方面類似於默認的中性文化格式?限制雙字符的最大字符數
我不想只限制小數位數,因爲用於符號和指數的字符數可能會改變,或者它可能不是科學記數法。
例如,具有最多20個字符
-1.23456789E-67
應顯示爲
-1.23456789E-67
而
123
應顯示爲123
,不1.23E+02
。
由於Sintar提到G格式說明符應該盡你所需。
double s = 1.31956544564371E+28;
Console.WriteLine("{0:G5}",s); // will print 1.3196E+28
下面是一個擴展方法可能是有益的:
public static class doubleExtensions
{
public static string GetDoubleString(this double source,int numOfChars){
string temp = "{0:G" + numOfChars + "}";
return string.Format(temp,source);
}
}
這只是控制有效數字的數量,而不是字符。例如。 -1.2345678E-123變成-1.2346E-123(12個字符),但1234.5678變成1234.6(6個字符)。 – user1318499 2014-10-10 10:54:15
['G'](http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx)格式應該產生最*緊湊的字符串表示。你可能想要實現自己的格式化程序(例如'double'的擴展方法),它將完成所有的邏輯:轉換,檢查等。 – Sinatr 2014-10-10 08:03:26