簡體   English   中英

格式化不帶逗號的小數

[英]Format a decimal without comma

我嘗試在 c# 中將十進制格式設置為 0:0.0 嘗試了此代碼

string nv = textBox7.Text.Trim().Replace(',', '.');

res =  Convert.ToDecimal(nv, new CultureInfo("en-GB"));

但 res 總是用逗號顯示結果,也嘗試過

new CultureInfo("en-GB")

但問題仍然存在 並提前感謝您。

正如其他評論和答案所暗示的那樣,您首先要了解一些基礎知識。 我可能會說一些你已經知道的事情,但請耐心等待:

  1. 您的textBox7.Text包含一個string ,而不是一個decimal
  2. 如果你想要一個decimal進行計算,你必須轉換它(我認為你已經做到了這一點)
  3. 由於res是一個十進制數,因此無論何時您想查看其值,SOMETHING 都會將其轉換為string 當您將鼠標懸停在它上面時,無論是將其寫入Console還是調試器。 該轉換將使用您當前的區域設置。 就是為什么你總是看到一個逗號。
  4. 要將其顯示給其他人或以您想要的格式將其寫入某處,您必須指定格式或 CultureInfo。

a) 標准格式 例子:
Console.WriteLine(res.toString("F2"));
這將用逗號后的 2 個數字格式化 123456:123456.00

b) 自定義格式 例子:
Console.WriteLine(res.toString("[##-##-##]"));
這將輸出 123456 到類似 [12-34-56]

c) 文化信息 例子:
Console.WriteLine(res.ToString(CultureInfo.CreateSpecificCulture("nl-BE")));
這將像在比利時一樣輸出 1234.56:帶逗號 1234,56

順便說一句,我認為 en-GB 也輸出到逗號 :-)

d) 結合 發瘋! 兩者都做! 例子:
Console.WriteLine(res.ToString("F2", CultureInfo.CreateSpecificCulture("nl-BE")));
格式 123456 到 123456,00 !

res是一個decimal ,而不是一個字符串。 所以它不能有格式。 小數是純數學數字,沒有相關格式。 該格式僅在您將decimal轉換為string時才存在。

您可以使用res.ToString(CultureInfo.InvariantCulture)生成使用. 作為小數點分隔符。

這將為您提供沒有逗號的十進制數字,例如“15000.00”:

FormatNumber(nv, , , , 0)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM