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

基于NetBeans的Java简易预算程序开发问题咨询

解决Java简易预算程序的运算与格式化问题

现有代码的问题修正

先修正你现有代码里的语法和格式错误:

  • 行int multiplication = number1 * number2末尾缺少分号,会触发编译错误
  • printf的格式符写错了,应该是%d\n而非*d*n,且你要输出的是酒店总价(number1*number2),不是两个单独输入值

实现里程乘法与金额格式化

你尝试用int存储里程乘以0.78的结果是错误的——int仅能存储整数,小数运算会丢失精度,必须用double类型处理带小数的金额。

步骤1:计算里程费用

直接用double类型存储里程计算结果:

double mileageCost = number3 * 0.78;

这里number3是int类型,和0.78(double类型)相乘时会自动转为double,保留小数精度。

步骤2:金额格式化

Java的格式化逻辑和HTML完全不同,要用printf的格式符%.2f强制保留两位小数(符合金额显示要求),示例:

System.out.printf("酒店总价: $%.2f\n", (double)number1 * number2);
System.out.printf("里程费用: $%.2f\n", mileageCost);

如果想先存储酒店总价,也可以直接用double类型:

double hotelTotal = number1 * (double)number2;

实现总预算的加法运算

直接把酒店总价和里程费用相加即可,不需要if-else语句——只有条件判断场景才需要if-else,这里只是简单算术运算:

double totalBudget = hotelTotal + mileageCost;
System.out.printf("本次旅行总预算: $%.2f\n", totalBudget);

完整修正后的代码

import java.util.Scanner;

public class TravelBudget {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        System.out.print("Enter the number of days you will be traveling: ");
        int number1 = input.nextInt();

        System.out.print("Enter the cost of your hotel per day: ");
        int number2 = input.nextInt();

        System.out.print("Enter the number of miles you will travel over the entire trip: ");
        int number3 = input.nextInt();

        // 计算酒店总价,用double存储避免后续加法精度问题
        double hotelTotal = number1 * (double)number2;
        // 计算里程费用
        double mileageCost = number3 * 0.78;
        // 计算总预算
        double totalBudget = hotelTotal + mileageCost;

        // 格式化输出,保留两位小数
        System.out.printf("酒店总价: $%.2f\n", hotelTotal);
        System.out.printf("里程费用: $%.2f\n", mileageCost);
        System.out.printf("本次旅行总预算: $%.2f\n", totalBudget);

        input.close();
    }
}

关键说明

  1. 选择double的原因:处理带小数的金额必须用浮点类型,int会截断小数部分导致计算错误
  2. %.2f的作用:强制格式化输出为两位小数,自动四舍五入,符合金额的显示规范
  3. 无需if-else:你的需求是固定算术运算,没有需要判断的分支条件,完全不需要用到if-else

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 11:40:51