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

Java中如何获取保留两位小数的double类型值并赋值给变量

解决方法:获取四舍五入保留两位小数的double值

核心问题说明

double是二进制浮点数类型,它本身不会存储成“带两位小数的十进制形式”,你看到的1.65024161E7只是调试工具或控制台默认输出时的科学计数法表现,实际数值已经是四舍五入后的结果。你需要区分:

  • 数值的计算精度(执行保留两位小数的四舍五入操作)
  • 数值的显示格式(需要时用格式化工具转成带两位小数的字符串)

正确的实现方式

不要通过字符串来回转换,直接对原始数值做四舍五入计算,有两种可靠方案:

方案1:用BigDecimal(推荐,避免浮点数精度误差)

double original = x.getSrcToDestBytes();
// 四舍五入保留两位小数,转换为double类型
double rounded = new BigDecimal(original)
    .setScale(2, RoundingMode.HALF_UP)
    .doubleValue();
x.setByteFor95(rounded);

方案2:用Math.round(简单场景适用)

double original = x.getSrcToDestBytes();
// 乘以100后取整,再除以100.0得到保留两位小数的结果
double rounded = Math.round(original * 100.0) / 100.0;
x.setByteFor95(rounded);

关于显示的补充

如果需要把最终的double值以16502416.10这种带两位小数的普通十进制形式展示,不要直接输出double变量,而是继续用DecimalFormat格式化:

DecimalFormat formatter = new DecimalFormat("0.00");
System.out.println(formatter.format(x.getByteFor95()));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 02:55:22