[英]Format double with no decimal point
我要將雙倍轉換為10位+ 4位小數。
所以說:我有一個雙999,56。 我要00000009995600 - >沒有逗號!
我有的是:
string.format(“{0:0000000000.0000}”,value)但我得到的是:0000000999,5600
所以我現在可以做的是搜索逗號並刪除它,但我想知道在這種特定格式中是否還有另一種“干凈”的格式化方式?
謝謝!
string.Format("{0:00000000000000}", value * 10000)
既然你說要避免String.Replace
:
// avoid whacked out cultures
double value = 999.56m;
CultureInfo info = CultureInfo.GetCultureInfo("en-US");
string s = (10000 * value).ToString("00000000000000", info));
Console.WriteLine(s); // displays "00000009995600"
但實際上,它並沒有錯:
double value = 999.56m;
CultureInfo info = CultureInfo.GetCultureInfo("en-US");
string s = value.ToString("0000000000.0000", info).Replace(
info.NumberFormat.NumberDecimalSeparator,
String.Empty)
Console.WriteLine(s); // displays "00000009995600"
好吧,我將使用Replace()方法,因為我猜沒有其他“簡單”的方法:
這是我的解決方案,與Jason的答案幾乎相同:
string sep = CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator;
Console.WriteLine(String.Format(fromt, testvalue).Replace(sep, ""));
謝謝!
double val = 12345.6789;
return val.ToString().Split('.')[0];
如果你不想(或不能)乘以這可能會有效:
string newValue = value.Replace(",", "");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.