1
我正在学习Java,并且学习了关于不同Java实用程序和数字格式的教程。但是,我的格式与本书中应该说的不一样。我的代码如下所示:DecimalFormat在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));
}
在书中例子,它说,12345格式化 “## 0 ## E0” 是 “12.3E3”。我收到的输出是“12.345E3”。
我收到的输出很有意义,但由于它与书不匹配,我不确定这是书中的错误还是错误。
这是正常的输出吗?
我懂了。我正确理解了现金格式化部分,但是由于本书显示的方式,科学记数法没有多大意义。如果我正确理解你的例子,Java的e标记将默认为一位小数,而不必指定,所以当我添加##时,它会在结尾添加两个数字(如果可用)。 (即## 0.E0 = 12.3,而## 0。## E0 = 12.345E3)这将比书中的措辞/格式更有意义。 – AdamWestPhD
是吗?这是什么意思我的解决方案是错误的@AdamWestPhD :) –
它看起来像它的作品:)感谢您的帮助 – AdamWestPhD