2012-11-15 122 views
0

我想刪除小數部分的尾部零。它從數據庫中精確加載5.刪除十進制的零尾部分

我正在使用逗號(,)爲小數點的文化。

例如:

  • 10,00050 - > 10,0005
  • 10,00000 - > 10
  • 0,00000 - > 0
  • 0.00001 - > 0.00001

我可以使用General ("G") Format Specifier但我不希望科學記數法在任何時候。

BR,m。

+0

10,00000 - > 10,這是留下了尾隨零。錯字? – PeteGO

+1

@PeteOakey可能不會,因爲它在小數點之前。 (我假設OP使用'''作爲小數點的文化' – CodesInChaos

+0

@PeteOakey他指的是在小數點分隔符右邊的尾部零 – Servy

回答

3

您可以使用custom numeric format string

decimal d = 12.45600m; 
d.ToString("0.#####"); 
+0

這不太合適:它會舍入到12.45679。假設Decimal是456789000.你怎麼樣格式化爲12.456789? –

+0

@ReacherGilt「從數據庫精確加載5.」 – Guillaume

+0

「您的示例是精度6」 –

-1

嘗試「N」,如果數字爲一千或更多,則會添加逗號。

0

可能有更優雅的解決方案,但這對字符串有效。

string[] decimals = { 
           "10,00050",// -> 10,0005 
           "10,00000",// -> 10 
           "0,00000",// -> 0 
           "0,00001",// -> 0,00001 
          }; 
     foreach (string dec in decimals) 
     { 
      Console.WriteLine(" {0} -> {1}", dec, decimal.Parse(dec.TrimEnd(new char[] { '0' }))); 
     } 
+0

我建議在字符串<->的十進制轉換中指定'InvariantCulture'。我不相信文化 – CodesInChaos