以下代码:
double number = 85047564288067.5
string numberString = number.toString("G3");
Console.WriteLine(numberString);
将打印:8.5E+13
这显然是正确的,但是toString()
函数是否有办法返回标准格式为8.5x10^13
的数字?
答案 0 :(得分:3)
只需将E
替换为x10^
:
string numberString = number.ToString("G3", CultureInfo.InvariantCulture)
.Replace("E", "x10^").Replace("+", "");
答案 1 :(得分:0)
如果仅用于显示目的,则应该可以完成这项工作。
double number = 85047564288067.5;
string numberString = number.ToString("G3").Replace("E+","x10^");
Console.WriteLine(numberString);
答案 2 :(得分:0)
您可以按以下方式更有效地使用它
扩展方法
public static class DoubleExtension
{
public static string ToString10Th(this double p)
{
return p.ToString("0.#E+0", CultureInfo.InvariantCulture).Replace("E-", "x10^-").Replace("E+", "x10^");
}
}
用法
double number = 85047564288067.5;
Console.WriteLine(number.ToString10Th());
答案 3 :(得分:-1)
尝试使用exponential notation。 也许是这样的:
double number = 85047564288067.5
string numberString = string.Format("{0:0.#E+00}", number);
Console.WriteLine(numberString);