任何人都可以查看此代码并告诉我为什么会发生异常?
public static void main(String[] args)
{
int total =100;
int discount_Ammount = 20 ;
int newAccount=Integer.parseInt( String.valueOf(Math.floor(total - discount_Ammount)).trim());
}
方法floor返回double值,然后我将转换为整数,所以我将它转换为字符串然后转换为整数...请,有人可以帮忙吗?
答案 0 :(得分:14)
你不是在“施放”任何东西。 trim()
仅删除空格,String.valueOf(double)
的结果中永远不会出现空白。
使用演员:
int newAccount = (int) Math.floor(total - discount_Ammount);
Java是一种强类型编程语言,而不是脚本语言。不支持字符串和其他类型之间的隐式转换。
或者,完全摆脱floor()
操作,因为您已经使用了int
数量,floor()
毫无意义:
int newAccount = total - discount_Ammount;
如果您正在使用资金,请使用BigDecimal
课程,以便您可以使用会计系统所需的舍入规则。使用double
时,您将无法控制它。
答案 1 :(得分:8)
你试过这个吗?
int newAccount = (int) Math.floor(total - discount_Ammount);
甚至这个!
int newAccount = total - discount_Ammount;
答案 2 :(得分:3)
无需执行Integer.parseInt(String.valueOf(
要转换为int,只需执行(int)(blah)
So int newAccount=(int)(Math.floor(total - discount_Ammount));