为了账号安全,请及时绑定邮箱和手机立即绑定

当我试图用百分比减去一个数字时,为什么我的程序会输出错误的计算结果?

当我试图用百分比减去一个数字时,为什么我的程序会输出错误的计算结果?

红颜莎娜 2023-06-08 14:49:24
我是编码新手。我正在通过编写一个程序来练习,该程序在减去他/她的经纪人的削减后给演员他/她的报酬。为什么会输出错误的计算?我似乎无法弄清楚问题所在。我在网上搜索,我确信我的数学是正确的。它应该没有理由输出除正确答案以外的任何内容。假设演员的片酬是 100.00 美元,经纪人的提成是 15%。演员应该得到 %85.00,对吗?奇怪的是,控制台输出 600 美元。我知道这违反了网站的规则,但我发现复制并粘贴整个项目很重要,但不会那么长。这里是:..导入 java.util.Scanner;公共课主要{static int payBefore;static int percentageTaken;static int totalAfterCut;static int percentageDividedBy100 = percentageTaken/100;static int middleOfCalculation;static Scanner payBeforeSc = new Scanner(System.in);static Scanner percentageSc = new Scanner(System.in);static Scanner middleOfCalculationSc = new Scanner(System.in);public static void main(String args[]) {    incomeAndPercentageQuestions();}private static void incomeAndPercentageQuestions() {    System.out.println("How much did your job pay before any agent cuts?");    payBefore=payBeforeSc.nextInt();    System.out.println("What percentage is your agent taking?");    percentageTaken=percentageSc.nextInt();    calculation();}私有静态无效计算(){    totalAfterCut = payBefore * (100 / percentageTaken);    output();}私有静态无效输出(){    System.out.println("$" + totalAfterCut + " will be your pay after your agent's cut.");}}
查看完整描述

1 回答

?
冉冉说

TA贡献1877条经验 获得超1个赞

我认为这与您的数学不正确有关。您的部门顺序错误。它应该是这样的:

totalAfterCut = payBefore * (percentageTaken / 100.0); //Actually amount deducted

正如 Nexevis 指出的那样,您的数学返回的是扣除的金额,而不是扣除后的金额。所以也更改它,以便从 payBefore 中减去扣除的金额:

totalAfterCut = payBefore - (payBefore * (percentageTaken / 100.0));

在处理这些类型的值时,您还应该使用浮点数据类型,因为对于整数,小数部分将被截断。因此,这意味着 15/100(均为整数)的结果始终为 0。您可以将 percentageTaken 保留为整数,然后使用 100.0(而不是 100)来获取浮点值。如果您担心值的美分部分,还要确保将结果保存为浮点数据类型。

double totalAfterCut;
totalAfterCut = payBefore - payBefore * (percentageTaken / 100.0);

我还将 payBefore 更改为浮点数据类型,以便用户可以输入包括美分在内的准确金额。

double payBefore;
payBefore=payBeforeSc.nextDouble();


查看完整回答
反对 回复 2023-06-08
  • 1 回答
  • 0 关注
  • 109 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信