Джава скрипт строка выводит NaN

 
Посетитель
small user social cms
МедальПочетный донор проекта
Сообщений: 923
Господа привет. Если значение получаемые из массива имеют нуль, то на выходе в строке +s.toFixed(2) выходит NaN. Как можно NaN поменять на 0?

Код PHP:
  1.  
  2. s = value[1] - value[0];
  3. t = value[0] - value[1];
  4. if (value[1] > value[0]){
  5. document.getElementById('k_s').innerText = "-" + +s.toFixed(2);
  6. }
  7. else {
  8. document.getElementById('k_t').innerText = "+" + +t.toFixed(2);
  9. }
  10.  
<span id="k_s"><div id="s"></div> </span>
<span id="k_t"><div id="t"></div> </span>
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3842
Есть функция https://javascript.ru/isNaN, ей можно проверить и вывести 0, если оно true.
А вообще, надо смотреть почему у вас получается NaN. Если вы работаете с числами, то может лучше с ними работать как с числами, а не строками. Для этого их надо перевести в числа функциями https://javascript.ru/ParseInt или https://javascript.ru/parsefloat
Реклама
cms
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1641
А что такое s и t? Вы их объявляете где то?
Код PHP:
  1. document.write('<span id="k_s"><div id="s"></div> </span><span id="k_t"><div id="t"></div> </span>') // -1
  2. let v=[0,1];
  3. let a=v[0];
  4. let b=v[1];
  5. let s = b-a;
  6. let t = a-b;
  7. if (b > a){
  8. document.getElementById('k_s').innerText = "-" + +s.toFixed(2);
  9. }
  10. else {
  11. document.getElementById('k_t').innerText = "+" + +t.toFixed(2);
  12. }
  13. console.log(v) //Array [ 0, 1 ]
Редактировалось: 1 раз (Последний: 24 июня 2020 в 09:43)
Посетитель
small user social cms
МедальПочетный донор проекта
Сообщений: 923
Loadырь:
Есть функция https://javascript.ru/isNaN, ей можно проверить и вывести 0, если оно true.
А вообще, надо смотреть почему у вас получается NaN. Если вы работаете с числами, то может лучше с ними работать как с числами, а не строками. Для этого их надо перевести в числа функциями https://javascript.ru/ParseInt или https://javascript.ru/parsefloat
Спасибо, да надо почитать .

Lora:
А что такое s и t? Вы их объявляете где то?
Код PHP:
  1.  
  2. s = value[1] - value[0];
  3. t = value[0] - value[1];
  4.  
s- t это переменные которым присваиваю значения из массива. Больше их нигде не обьявляю. Грубо говоря все выглядит так -
s = 5 -1
t = 10 -5
Потом ответ который содержит одна из переменных вывожу в строку.

По остальному все понял, пошел учить))
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3842
В яваскрипте надо объявлять переменные изначально, потом им присваивать значения. Можно сделать объявление с присвоением одной строкой.
Код HTML:
  1. var s = value[1] - value[0];
  2. var t = value[0] - value[1];
Посетитель
small user social cms
МедальПочетный донор проекта
Сообщений: 923
Loadырь:
В яваскрипте надо объявлять переменные изначально, потом им присваивать значения. Можно сделать объявление с присвоением одной строкой.
Да действительно моя ошибка, но по поводу var и let разница есть, но себя нужно приучать к let?
Посетитель
small user social cms
МедальПочетный донор проекта
Сообщений: 923
Всем спасибо , закрываю. По поводу var если кому интересно - https://medium.com/nuances-of-programming/%D0%B2-%D1%87%D1%91%D0%BC-%D1%80%D0%B0%D0%B7%D0%BD%D0%B8%D1%86%D0%B0-%D0%BC%D0%B5%D0%B6%D0%B4%D1%83-var-let-%D0%B8-const-%D0%B2-javascript-3084bfe9f7a3
В начало страницы
Предыдущая темаСледующая тема Перейти на форум: