2015-12-01 2 views
0

Я прочитал файл и требую, чтобы переменные были удвоены, поскольку они являются десятичными. Так сделали это:Возможная потеря точности требуется int found double array

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

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

Я сейчас пытаюсь поместить данные в массив, но я получаю следующее сообщение об ошибке:

possible loss of precision
required: int
found: double array

мне нужно переменные дома и скорости, чтобы быть в массив чтобы сделать расчет, и они должны быть удвоены, так как процентная ставка равна десятичной:

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

Как я могу остановить эту ошибку?

ответ

2

Вы получаете ошибку, потому что вам нужно инициализировать свой массив, используя Целое число, а не double s. Поэтому вам нужно преобразовать двойники в целые числа.

Изменить

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

к

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

Привет, спасибо. Будет ли это останавливать значения от десятичных чисел? – tbs

+0

Да, это приведет к потере точности. Но вам не нужна эта дополнительная точность, если вы используете переменные для инициализации массива. Или, может быть, вы можете попробовать «Integer.parseInt()» вместо «Double.parseDouble()» с первого места. –

+0

Понимаю, мне нужно, чтобы это было точно, как для моего задания. Есть ли способ, чтобы я мог прочитать данные из файла и поместить их в массивы, а затем в массив «место»? – tbs

0

массивы по определению индексируется с помощью целого числа позиции. Нет слота № 9 3/4; который существует только в Гарри Поттере. Вы буквально должны думать о массиве, чтобы выглядеть так: {true, false, true} - что такое значение в «1.75»?!?

Если вы хотите «индекс», используя произвольные значения, вы можете искать для словаря, он же в java.collections.Map, который отображает ключи (например, 9,75) до значений; или используйте таблицу переводов от ключей к индексам.

Смежные вопросы