0
for (int i = 0; i < 18; i++) {
  line = file.readLine();
  String[] word = line.split(";");

  appartment[i] = new Appartment();
  appartment[i].floor= Integer.parseInt(word[0]);
  appartment[i].name = word[1];
  appartment[i].money= Double.parseDouble(word[2]);
  appartment[i].owner= word[3];
}

有人可以告诉我为什么这不起作用吗?我从文件中读取。我正在尝试将钱从字符串转换为双倍,但它说

possible loss of precision. 
required: int
found: double

我需要双打,所以业主账户也可以变成负数。

4

5 回答 5

5

-这似乎appartment是一个类型的数组Appartment,其中 Appartement 的对象字段命名moneyint类型。

-但是您将其值作为double类型分配,因此您需要从 double 到 int的显式转换,

例如:

appartment[i].money= (int) Double.parseDouble(word[2]);

于 2012-10-08T11:05:11.400 回答
1

用这个,

  appartment[i].money = Integer.parseInt(word[2]);
于 2012-10-08T11:12:08.550 回答
1

显然appartment[i].money= Double.parseDouble(word[2]);这里是个问题。如果 money 的类型是int,您应该将 word[2] 的值转换为intlike appartment[i].money = (int(Double.parseDouble(word[2])); 或者您应该将其解析为整数,例如 appartment[i].money= Integer.parseInt(word[2]);

于 2012-10-08T11:08:18.410 回答
0

你可能有钱是int的公寓的defenition,试着把它改成双...

于 2012-10-08T11:03:52.623 回答
0

在 Java 中表示货币的最佳实践是使用 BigDecimal。有关详细信息,请参阅:http ://www.javapractices.com/topic/TopicAction.do?Id=13。

于 2012-10-08T11:07:06.960 回答