格式为double,没有小数点

时间:2009-12-10 21:57:03

标签: c# .net string format double

我要将双倍转换为10位+ 4位小数。

所以说: 我有一个双999,56。我得00000009995600 - >没有逗号!

我拥有的是:

string.format(“{0:0000000000.0000}”,value)但我得到的是: 0000000999,5600

所以我现在可以做的是搜索逗号并删除它,但我想知道这种特定格式是否还有另一种“干净”的格式化方式?

谢谢!

5 个答案:

答案 0 :(得分:15)

string.Format("{0:00000000000000}", value * 10000)

答案 1 :(得分:4)

既然你说要避免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"

答案 2 :(得分:0)

好吧,我会使用Replace()方法,因为我猜没有其他“简单”方法:

这是我的解决方案,与Jason的答案几乎相同:

string sep = CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator;
Console.WriteLine(String.Format(fromt, testvalue).Replace(sep, ""));

谢谢!

答案 3 :(得分:0)

double val = 12345.6789;
return val.ToString().Split('.')[0];

答案 4 :(得分:-2)

如果您不想(或不能)相乘,那么这可能有效:

string newValue = value.Replace(",", "");