用Math.round()算的结果不理解

问题遇到的现象和发生背景

用Math.round()算出比结果多100倍

运行结果及报错内容

img

我的解答思路和尝试过的方法

System.out.println(capital+Math.round(capital*0.0035));的结果就很正常

这个前面加了段字符串,结果就多了100倍
System.out.println("活期1年本金总计:"+capital+Math.round(capital*0.0035));

我想要达到的结果

为什么这样子?

你要把本金和后面的round用括号括起来
否则字符串+int,会将int隐式转换为字符串,然后执行字符串拼接,结果还是个字符串
那么本金被当做字符串之后,后面的round会继续被当做字符串拼接在后面

后面计算的表达式要加括号,因为字符串跟一个数字相加,jvm直接把数字附到字符串后面了,改成:
“活期1年本金总计”+(capital+Math.round(capital*0.0035))

这样会先计算括号里面的东西