[英]C# double.ToString() max number of digits and trailing zeros
如何將double
精度數轉換為最大位數為 6 的string
並刪除尾隨零?
我希望有 :
2.123456123 -> "2.123456"
0.0000012 -> "0.000001" (and not "1.2e-6")
12.45 -> "12.45" (and not "12.450000")
36 -> "36" (and not "36.000000")
使用string.Format("{0:F6"}, value)
輸出尾隨零和string.Format("{0:G6"}, value)
將不適合第二個示例。
可以使用value.ToString("0.######)
嗎?
有沒有等效的方法來處理string.Format()
?
這是正常使用value.ToString("0.######")
但是,您應該考慮另一件事: double
不是十進制(基數為 10)的數字。 您不應該依賴數字的十進制表示是否合理 - 大量正常的十進制以 10 為基數的數字需要以 2 為基數進行無限十進制擴展。
如果您確實關心十進制表示,那么改用decimal
可能是一個更好的主意 - 它也是一個浮點數,但以 10 為基數。
在任何一種情況下,這都涉及四舍五入——這可能是也可能不是你想要的。
令牌是具有價格字符串屬性的 ViewModel:
foreach (var item in tokens)
{
item.Price = double.Parse(item.Price).ToString("#,0");
}
// 123456 => 123,456
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.