String.format(“%。5e”,someDouble)产生一个带有13个小数位的数字&没有“e + xx”

时间:2015-02-26 19:37:07

标签: java string format exponential

正如问题所示,我正在使用String.format("%.5e",someDouble),因为我想要以下格式#.#####E+#

我正在为教程制作一个计算器。假设我输入333,333,333,333 * 333,333,333,333。正确格式的答案应为“1.11111E+23”。但是,无论我在1.1111111111089方法的格式参数中放在'e'之前的数字,它都会给我“String.format(String format, Object... args)”。

2 个答案:

答案 0 :(得分:0)

问题必须在其他地方,因为您的格式正确。 我试过这个:

public static void main (String[] args) throws java.lang.Exception
{
    double number = 333333333333l*(double)333333333333l;
    System.out.println(String.format("%.5e",number));
}

结果是1.11111e+23

...假设它是Java。您可以在此处查看:https://ideone.com/VubwX7

答案 1 :(得分:0)

我的问题确实不在于String的格式化。格式化之前有一些代码,如果已经是十进制格式,则会将字符串截断为一定长度的字符。我没有意识到的是,我使用的等式已经很大,实际上需要用科学记数法表达。因此,当它被截断时,它删除了“e + 23”,并且只留下了一个简单的'ol十进制数字。具有讽刺意味的是,它甚至没有达到格式化String的代码。