我正在学习Java,并且已经学习了有关不同Java实用程序和数字格式的教学部分。但是,我的格式不像他们在书中所说的那样工作。我的代码如下所示:
import java.text.NumberFormat;
import java.text.DecimalFormat;
public class Lessons {
public static void main(String[] args) {
double d = 7.1348759272948202842847;
System.out.printf("%15e %n", d);
NumberFormat cashFormat = NumberFormat.getCurrencyInstance();
System.out.println(cashFormat.format(d));
double e = 14.9;
double f = 16.09805938020001;
double g = 12346;
DecimalFormat Dec_Format = new DecimalFormat("##0.##E0");
System.out.println(Dec_Format.format(e));
System.out.println(Dec_Format.format(f));
System.out.println(Dec_Format.format(g));
}
在书中的例子中,它表示用“## 0。## E0”格式化的12345是“12.3E3”。我收到的输出是“12.345E3”。
我收到的输出很有意义,但由于它与本书不符,我不确定书中是否有错误,或者我做错了什么。
这是正常输出吗?
答案 0 :(得分:0)
您用于打印12.3E3
的格式不正确,而是:
DecimalFormat Dec_Format = new DecimalFormat("##0.##E0");
你应该使用:
DecimalFormat Dec_Format = new DecimalFormat("##0.E0");
这将告诉你:
7,134876e+00
7,13 €
14,9E0
16,1E0
12,3E3//<-----------------