我有double value = 30308950000;
双人科学记数法格式的10次方C#
我要像3.03x10^10
我如何使用C#实现它显示呢?
我已经试过
double value = 30308950000;
Console.WriteLine(value.ToString("0.###E+0", CultureInfo.InvariantCulture));
输出= 3.03E+10
我不想让3.03E+10
格式,但3.03x10^10
。 感谢
我有double value = 30308950000;
双人科学记数法格式的10次方C#
我要像3.03x10^10
我如何使用C#实现它显示呢?
我已经试过
double value = 30308950000;
Console.WriteLine(value.ToString("0.###E+0", CultureInfo.InvariantCulture));
输出= 3.03E+10
我不想让3.03E+10
格式,但3.03x10^10
。 感谢
简单的解决办法:
double value = 30308950000;
Console.WriteLine(
value.ToString("0.###E+0", CultureInfo.InvariantCulture)
.Replace("E-","x10^-")
.Replace("E+","x10^"));
喊出乔恩斯基特! :)
只有当结果真的具有E + 10时才有效。对于E + 9等,它不会工作(如书面所示)。如果您打算有一个只适用于样本值的解决方案,那么最好将其更改为Console.WriteLine(“3.03x10^10” )' –
是的你是对的,更新了解决方案。 – TheRealVira
这似乎仍然有点超过顶部。为什么不用'x10 ^'替换'E +'而用'x10^-'替换'E-'? –
不幸的是,NumberFormarInfo不提供任何ExponentialSign参数。
就是这样,Exponential Format Specifier (E)只使用NumberFormarInfo中的NegativeSign,NumberDecimalSeparator和PositiveSign信息。
要做到这一点“模式”,你必须使用自己的ICustomFormatter像here执行。
某人如何降低这个问题的投票率?这绝对不是琐事!被接受的答案很糟糕。 – Orace
下来投票的人也应该在这里留言。所以我们可以找到更好的解决方案。 – John
@Orace这个问题不应该被低估 - 是的,但是我的答案究竟是什么“糟糕”?请描述你自己,我会尽我所能纠正它。 – TheRealVira