我要将双倍转换为10位+ 4位小数。
所以说: 我有一个双999,56。我得00000009995600 - >没有逗号!
我拥有的是:
string.format(“{0:0000000000.0000}”,value)但我得到的是: 0000000999,5600
所以我现在可以做的是搜索逗号并删除它,但我想知道这种特定格式是否还有另一种“干净”的格式化方式?
谢谢!
答案 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(",", "");