2013-11-23 3 views
0

Я не могу объяснить, где здесь происходит ошибка, но основное деление, которое я пытаюсь использовать с использованием значений массива, приводит к чрезмерно большим числам в десятках тысяч.JavaScript Разделение значений массива на Int

Внутри для цикла «для (вар я = 0; я < 6; я ++),» У меня есть код последующей»

var av1 = (stud[i][0][0] + stud[i][0][1] + stud[i][0][2])/3; 

Для ясности, происходит сбой на каждой итерации . этот цикл начальные значения следующим образом:.

stud[0][0][0] = '77'; 
stud[0][0][1] = '81'; 
stud[0][0][2] = '85'; 

так что я бы ожидать 81, просто и ясно, однако, выход он придумывает является 259395. Кто-нибудь знает, что я здесь делаю неправильно?

+1

Преобразование в parseInt (stud [i] [0] [0]) + parseInt (stud [i] [0] [1]) и т. Д. Вы получаете 259395, потому что это 778185/3, результат строки, связывающей значения , – bishop

+0

Отлично! Большое спасибо :) Я запутался в JavaScript, потому что вы не определяете типы переменных ... и, по-видимому, мне кажется, что я делаю строку> _ < – River

ответ

2

Значения массива представляют собой строки, а не целые числа. Таким образом, ваше добавление создает значение 778185. После того, как тип принужден к целому числу и делится на 3, вы получите ровно 259395. Вам нужно убедиться, что ваши целые числа хранятся как целые числа.

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