java - 如何在 Java 中添加带有 int 变量的浮点变量?
问题描述
我是 Java 新手,所以我也在做一些练习。这个要求我拿到账单,获得利息,计算该账单的利息,然后退还账单加上利息。
这是代码:
import java.util.Scanner;
public class BillsAndInterest{
public static void main(String[] args){
double bill;
System.out.println("How mutch is the bill payment? ");
bill = new Scanner(System.in).nextDouble();
System.out.println("What's the interest in this bill in per cent?");
double interest = new Scanner(System.in).nextDouble();
double interestCalculated = interest / 100 * bill;
System.out.println("Your interest is " + interestCalculated + " dinheiros! \n So the amount is " + bill + interestCalculated + " dinheiros!");
}
}
那么问题来了,如果我的账单是 100 dinheiros,利息是 25,那么 bill + interest 一定是 125,但是代码返回100.025.0 dinheiros!
我尝试更改double interestCalculated
为int interestCalculated
,但出现此错误:
BillsAndInterest.java:15: 错误:不兼容的类型:可能有损从 double 转换为 int int interestCalculated = interest / 100 * bill; ^ 1 个错误
有人可以帮我吗?是否有一些我应该寻求帮助的特定课程?
解决方案
问题在于声明:
System.out.println("Your interest is " + interestCalculated +
" dinheiros! \n So the amount is " +
bill + interestCalculated + " dinheiros!");
to 的参数System.out.println
是一堆由+
运算符连接的文字和变量。在没有任何括号的情况下,+
操作只是按从左到右的顺序计算,就好像语句已经写成:
String $T1 = "Your interest is " + interestCalculated;
String $T2 = $T1 + " dinheiros! \n So the amount is ";
String $T3 = $T2 + bill; // String + number = String
String $T4 = $T3 + interestCalculated; // String + number = String
String $T5 = $T4 + " dinheiros!";
System.out.println($T5);
当然,您想要的是将总和相加,bill
然后interestCalculated
将该总和合并到整个字符串结果中,更像是这样:
String $T1 = "Your interest is " + interestCalculated;
String $T2 = $T1 + " dinheiros! \n So the amount is ";
double $T3 = bill + interestCalculated; // number + number = number
String $T4 = $T2 + $T3; // String + number = String
String $T5 = $T4 + " dinheiros!";
System.out.println($T5);
强制执行该评估顺序的一种方法是在 周围添加括号bill + interestCalculated
:
System.out.println("Your interest is " + interestCalculated + " dinheiros! \n So the amount is " + (bill + interestCalculated) + " dinheiros!");
另一种选择是在单独的变量中计算总数并在字符串表达式中使用该变量:
double totalAmount = bill + interestCalculated;
System.out.println("Your interest is " + interestCalculated + " dinheiros! \n So the amount is " + totalAmount + " dinheiros!");
还有第三个选项,您可能会更喜欢:
System.out.printf(
"Your interest is %.2f dinheiros! %n So the amount is %.2f dineheiros!%n",
interestCalculated,
bill + interestCalculated);
阅读更多关于printf
这里
推荐阅读
- sql-server - 如何在同一个表上针对列中的不同值运行两个查询(SQL Server)
- dialogflow-es - Google 上的操作 - 突然不断进入后备权限
- gradle - JOOQ 代码生成报错
标签是强制性的 - php - 安装 Laravel 黄昏后,它显示错误
- gmail - Gmail 促销标签注释是否会影响收件箱递送?
- php - 在rest api中合并数组以响应
- solidity - VM out of Gas Exception 试图调用属于其他合约的函数
- android - BottomNavigationView 不在底部显示,而是在顶部显示
- mongodb - 尝试为 Hyperledger composer 项目启用 JWT 时出错
- java - 在 Redis 中存储 Web Socket 会话