我想用Java打印一个没有指数形式的双值.

double dexp = 12345678;
System.out.println("dexp: "+dexp);

它显示了E符号:1.2345678E7.

我想把它打印成这样:12345678

预防这种情况的最好方法是什么?

推荐答案

你可以用printf()%f:

double dexp = 12345678;
System.out.printf("dexp: %f\n", dexp);

这将打印dexp: 12345678.000000.如果您不想要小数部分,请使用

System.out.printf("dexp: %.0f\n", dexp);

%.0f分之0表示分数部分中的0个位置,即没有分数部分.如果你想打印小数点后位数的小数部分,那么只需提供%.8f这样的数字,而不是0.默认情况下,小数部分最多打印6位小数.

这使用在documentation中解释的格式说明符语言.

原始代码中使用的默认toString()格式是here.

Java相关问答推荐

Java应用程序RAC感知

通过推送通知向自己发送Matrix消息

如何在Javascript中设置文本区域圆角的样式

使用java访问具体子类特定方法的最佳方法是什么?

无法处理批处理侦听器中的反序列化异常

Java中如何根据Font.canDisplay方法对字符串进行分段

如何找到MongoDB文档并进行本地化?

如何使用Jackson将XML元素与值和属性一起封装

使用PDFBox从PDF中删除图像

在添加AdMob时无法为Google Play构建应用程序包:JVM垃圾收集器崩溃和JVM内存耗尽

如何在太阳系模拟器中添加月球?

如何以编程方式保存workBench.xmi?

如何在@CsvSource中传递空格作为值

使用SWIG将C++自定义单元类型转换为基本Java类型

为什么我不能建立输入/输出流?Java ServerSocket

Java.time.OffsetDateTime的SQL Server数据库列类型是什么?

如何使用Java对随机生成的字母数字优惠券代码进行过期设置

rest api服务 spring 启动中出现IllegalFormatConversionException

让标签占用JavaFX中HBox的所有可用空间

验证没有';t work on Hibernate Entity';s字段