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

Java税费计算程序小数输入报错问题及小数与整数相乘方法

问题解决:Java解析小数输入抛出NumberFormatException

问题根源

你用Integer.parseInt()解析像.23这样的小数字符串,而Integer类型只能处理纯整数格式的输入,小数包含小数点,不符合整数的语法规则,直接触发NumberFormatException。

修复方案

把整数类型替换为浮点类型(比如double),用Double.parseDouble()来解析小数输入,同时调整计算和输出逻辑:

package apples;
import javax.swing.JOptionPane;
import java.text.DecimalFormat;

class apples {
    public static void main(String[] args) {
        try {
            String assessmentInput = JOptionPane.showInputDialog("Enter assessment value");
            String taxRateInput = JOptionPane.showInputDialog("Enter local tax rate");
            
            // 用Double.parseDouble解析小数输入
            double assessmentValue = Double.parseDouble(assessmentInput);
            double taxRate = Double.parseDouble(taxRateInput);
            
            // 计算税费
            double taxAmount = assessmentValue * taxRate;
            
            // 格式化输出为两位小数,符合金额显示规范
            DecimalFormat df = new DecimalFormat("#.##");
            JOptionPane.showMessageDialog(null, "Tax amount: " + df.format(taxAmount));
        } catch (NumberFormatException e) {
            // 处理非数字输入的异常
            JOptionPane.showMessageDialog(null, "请输入有效的数字格式");
        }
    }
}

关键修改点

  • 用Double.parseDouble()替代Integer.parseInt(),支持解析.23这种省略整数位的小数格式
  • 变量类型从int改为double,适配小数乘法计算
  • 添加try-catch块捕获非数字输入的异常,提升程序健壮性
  • 用DecimalFormat格式化输出结果,让金额显示更直观规范

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 13:35:16