0

昨天,我试图以一种方式做到这一点......今天我正在尝试另一种方式,但我仍然被卡住了。我必须找到一种使用整数除法和 mod 的方法。这是我的代码,后面是错误消息。

public int evaluateFraction(int w, int n, int d)
    throws NumberFormatException
{
    whole = w;
    numerator = n;
    denominator = d;
    return portion2;
}

测试仪

    input = JOptionPane.showInputDialog("Enter");

    portion2 = Integer.parseInt(input);`

错误信息:

Exception in thread "main" java.lang.NumberFormatException: For input string: "1 1/8"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:492)
at java.lang.Integer.parseInt(Integer.java:527)
at ClientCode.main(ClientCode.java:43)

Java 结果:1

我现在到底做错了什么?

4

3 回答 3

1

Integer.parseInt只能解析有效的整数字符串。如果输入字符串包含除数字以外的任何内容,那么它将抛出NumberFormatException.

您正在尝试解析一个1 1/8不是有效整数字符串的表达式。

于 2013-10-08T17:05:06.973 回答
0

"1 1/8"不是一个数字。1并且8是,空格和/不是。您需要手动解析这样的表达式。

于 2013-10-08T17:06:04.600 回答
0

1 1/8不是整数,Integer.parseInt如果数据有效,则只能在一种情况下表现良好。

不知道,您期望什么结果,但您要么需要其他方法,要么自己解析。

于 2013-10-10T12:39:10.830 回答