我有以下输出
输出= 4.08E-4
输出= 8.9E-5
输出= 0.978461
输出= 0.224577
现在我没有得到的是 4.08E-4 - 我认为它是负指数并且给定< 0它返回true但是有另一种方式以十进制显示格式?
答案 0 :(得分:2)
您很可能正在尝试使用System.out.println(...)打印float / double。
这最终会调用Float(或Double)的public static String toString()
方法。无论哪种方式,如果您阅读Javadoc,它都会声明:
如果m小于10-3或大于或等于107,那么它是 以所谓的“计算机化科学记数法”代表。设n是 唯一的整数,使得10n <= m <1。 10N + 1;然后让一个人成为 数学上精确的m和10n的商使得1 <= a <1。 10. 然后将幅度表示为a的整数部分,作为单个 十进制数字,后跟'。' ('\ u002E'),后跟十进制数字 代表a的小数部分,后跟字母'E' ('\ u0045'),后跟n表示十进制整数,如 由Integer.toString(int)方法生成。
您可以使用System.out.printf()
解决此问题,如下所示:
double d = 0.000408;
System.out.println(d);
System.out.printf("%f", d);
打印:
4.08E-4
0,000408
我的2美分。
答案 1 :(得分:1)
System.out.println(4.08e-4);
0.000408
答案 2 :(得分:1)
我使用NumberFormat类 -
double d = 0.000408;
//For considering 4 digits after decimal place
NumberFormat nf = NumberFormat.getInstance();
nf.setMaximumFractionDigits(4);
nf.setGroupingUsed(false);
System.out.println(d);
System.out.println(nf.format(d));
答案 3 :(得分:0)
我认为你要找的是NumberFormat类或printf函数,任何一个都可以工作。