2016-09-30 52 views
-1

我有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。 感谢

+0

某人如何降低这个问题的投票率?这绝对不是琐事!被接受的答案很糟糕。 – Orace

+0

下来投票的人也应该在这里留言。所以我们可以找到更好的解决方案。 – John

+0

@Orace这个问题不应该被低估 - 是的,但是我的答案究竟是什么“糟糕”?请描述你自己,我会尽我所能纠正它。 – TheRealVira

回答

0

简单的解决办法:

double value = 30308950000; 
Console.WriteLine(
    value.ToString("0.###E+0", CultureInfo.InvariantCulture) 
     .Replace("E-","x10^-") 
     .Replace("E+","x10^")); 

喊出乔恩斯基特! :)

+0

只有当结果真的具有E + 10时才有效。对于E + 9等,它不会工作(如书面所示)。如果您打算有一个只适用于样本值的解决方案,那么最好将其更改为Console.WriteLine(“3.03x10^10” )' –

+0

是的你是对的,更新了解决方案。 – TheRealVira

+1

这似乎仍然有点超过顶部。为什么不用'x10 ^'替换'E +'而用'x10^-'替换'E-'? –