在找到的双数组中可能需要精度损失

时间:2015-12-01 20:52:25

标签: java arrays int double

我已经读过一个文件并要求变量是双倍的,因为它们是小数。所以这样做了:

String[] data = list.split("\\t");

        homes = Double.parseDouble(data[0]);
        rate = Double.parseDouble(data[1]);

我现在正试图将数据放入数组中,但是收到以下错误:

  

可能损失精度
  必需:int
  发现:双数组

我需要将变量homes和rate放在一个数组中以进行计算,并且需要它们是双倍的,因为rate是十进制的百分比:

private boolean [][] place = new boolean [homes][rate];

如何停止此错误?

2 个答案:

答案 0 :(得分:2)

您收到错误是因为您需要使用整数大小而不是double来初始化数组。所以你需要将双精度转换为整数。

更改

private boolean [][] place = new boolean [homes][rate];

private boolean [][] place = new boolean [(int)homes][(int)rate];

答案 1 :(得分:0)

根据定义,

数组使用整数位置进行索引。没有插槽号9 3/4;那只存在于哈利波特中。你必须想到一个如下所示的数组:{true, false, true} - " 1.75"的价值是什么?!?

如果你想"索引"使用任意值,你可能正在寻找一个字典,又名java.collections.Map,它将键(如9.75)映射到值;或使用从键到索引的转换表。