You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中如何使用printf打印极小的double类型数值

Java printf输出极小double数值的解决方案

问题原因

printf中%f格式化符默认仅保留6位小数,你要输出的4.507310875086383E-8实际数值为0.00000004507310875086383,小数点后前6位均为0,因此默认输出显示为0.000000。

实现方案

你可以根据所需的输出格式选择对应格式化符:

  • 若要和字符串拼接的科学计数法输出完全一致,使用%e格式化符,可按需指定精度:
    // 默认保留6位有效数字的科学计数法
    System.out.printf("value is %e%n", value);
    // 指定精度后完全匹配字符串拼接的输出结果
    System.out.printf("value is %.16e%n", value);
    
  • 若要系统自动适配输出格式(数值极小/极大时用科学计数法,常规数值用普通小数格式),使用%g格式化符:
    System.out.printf("value is %.16g%n", value);
    
  • 若不需要科学计数法,要展示完整小数形式,给%f指定足够的小数位数即可:
    // 保留8位小数即可显示非0结果
    System.out.printf("value is %.8f%n", value);
    // 保留16位小数可完全体现当前double的精度
    System.out.printf("value is %.16f%n", value);
    

内容的提问来源于stack exchange,提问作者Hanabi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 03:54:10