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
,