整数问题

时间:2010-06-30 20:18:59

标签: java

任何人都可以查看此代码并告诉我为什么会发生异常?

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值,然后我将转换为整数,所以我将它转换为字符串然后转换为整数...请,有人可以帮忙吗?

3 个答案:

答案 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));