Jquery - Странное преобразование чисел в строки

Я сталкиваюсь со странным нежелательным Number в NaN преобразование, не зная, где и почему. Я явно что-то здесь упускаю, но не могу понять, что.

Любое предложение приветствуется!;)

Вот код JavaScript:

updatedAbsoluteResult = currentlyDisplayedRentability * investment
resultAgainstReferencial = updatedAbsoluteResult - appropriateReferencialRentability * investment

$('#a0').html('currentlyDisplayedRentability: ' + typeof currentlyDisplayedRentability)
$('#a1').html('investment: ' + typeof investment)
$('#a2').html('updatedAbsoluteResult: ' + typeof updatedAbsoluteResult)
$('#a3').html('appropriateReferencialRentability: ' + typeof appropriateReferencialRentability)
$('#a4').html('resultAgainstReferencial: ' + typeof resultAgainstReferencial )
$('#a5').html('resultAgainstReferencial: ' + resultAgainstReferencial )

Вот вывод HTML:

currentlyDisplayedRentability: number
investment: number
updatedAbsoluteResult: number
appropriateReferencialRentability: number
resultAgainstReferencial: number
resultAgainstReferencial: NaN

Все имеет тип Number, но когда я хочу вернуть конечный результат, в результате я получаю "не число". Кто-нибудь знает почему?

Приятных выходных!

4 ответа

Решение

Числовой тип может возвращать NaN и при этом иметь числовой тип. Проверьте значения updatedAbsoluteResult, соответствующим ReferencialRentability и инвестиций, чтобы увидеть, являются ли какие-либо из них неожиданными значениями. Вероятно, что-то в этом уравнении пошло не так.

Проблема, вероятно, в том, что resultAgainstReferencial NaN, Вы получаете результаты, потому что:

typeof NaN == "number"

Показать тебе:

resultAgainstReferencial = NaN;
alert(typeof resultAgainstReferencial);   // alerts "number"

Вы даже можете увидеть это здесь: http://jsfiddle.net/jfriend00/t3ubg/

Итак, где-то вверх по течению, вы пытаетесь сделать математику с вещами, которые не являются числами. Вам нужно будет посмотреть на значения всех числовых входов и посмотреть, куда пошли данные.

Возможно, по иронии судьбы, NaN само по себе Number,

Вы можете потерпеть неудачу parseInt() позвоните куда-нибудь или множество других возможностей. Трудно угадать, не увидев соответствующий код.

NaN в javascript технически все еще типа number, Обычно вызывается делением на 0. Выполнение математических вычислений для другого NaN также вернется NaN,

Другие вопросы по тегам