簡體   English   中英

格式為double,沒有小數點

[英]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.

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