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

Android Studio中Double类型计算小数位丢失问题求助

问题分析与解决

你的计算结果小数部分始终显示为0,核心问题大概率出在计算值的真实性或格式化规则设置上,以下是针对性的排查和修复方案:

第一步:确认计算结果的真实值

先在格式化代码前打印tot的实际数值,验证它是否真的包含小数部分:

// 在ed5.setText(...)之前添加这行代码
System.out.println("实际计算结果:" + tot);
  • 如果打印结果是77.0:说明你的计算逻辑本身得到的就是整数,需要检查st1/dq1*wg1这类表达式的输入值(比如ed2、ed3等文本框的内容是否符合预期);
  • 如果打印结果是77.3:问题出在DecimalFormat的格式化规则上。

第二步:修复格式化规则

你当前使用的DecimalFormat(".2")模式定义不规范,没有明确指定整数部分的格式,导致输出异常。正确的保留小数格式应该用以下两种:

  • #.##:显示有效数字,比如77.3会输出77.3,77.0会输出77;
  • 0.00:强制显示两位小数,比如77.3会输出77.30,77.0会输出77.00。

修改后的代码示例:

// 替换原格式化对象的创建代码
DecimalFormat precision = new DecimalFormat("#.##");
// 若需要强制保留两位小数,改用这行:
// DecimalFormat precision = new DecimalFormat("0.00");

额外说明

由于你已经将输入文本解析为Double类型,整数之间的除法会自动按浮点数计算,不需要担心整数除法导致的小数丢失问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 18:45:24