Android:在达到特定位数后,如何将十进制格式更改为科学格式?

Android:在达到特定位数后,如何将十进制格式更改为科学格式?,android,formatting,Android,Formatting,我正在格式化我的输出字符串,如下所示: private DecimalFormat df4 = new DecimalFormat("#.####"); updateFinalResult(df4.format(currentInput)); 我想这样做,当doublecurrentInput的位数超过14位时,它开始以科学记数法显示。如何实现这种行为?如果您想要双输出“#.#” 请试一试 String.format(“%.2f”,d)我想这就是你想要的 NumberFormat forma

我正在格式化我的输出字符串,如下所示:

private DecimalFormat df4 = new DecimalFormat("#.####");
updateFinalResult(df4.format(currentInput));

我想这样做,当double
currentInput
的位数超过14位时,它开始以科学记数法显示。如何实现这种行为?

如果您想要双输出“#.#” 请试一试


String.format(“%.2f”,d)
我想这就是你想要的

NumberFormat formatter = new DecimalFormat();

    double number = 1234567.4569847648;
    System.out.println(number);    

    formatter = new DecimalFormat("0.######E0"); // you can change this format to what ever you like
    System.out.println(formatter.format(number)); //output = 1.234567E6

举一些例子,你想要什么类型的结果?例如updateFinalResult(String)显示的是一个双值currentInput。如果currentInput的值为7482975728.5724(一个14位数字),则它将以正常格式显示,最多为4位小数(#.#.#.#.#.#.#.#.#。但是,一旦这个数字变得更大,比如582668582617595.5837(超过14位数字),我希望它能显示为一个科学的符号(5.8248337627E16),一旦数字变小,它就会回到正常的符号中。我已经将双精度值设置为小数点后4位。我想做的是,一旦值超过14位数字,就自动开始格式化为科学记数法。回到########当值不再是14位数字时,输出总是使用这种格式的科学记数法。这只是一个演示,在此之前,您需要实现
条件