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

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 24 июня 2020 в 08:07
Господа привет. Если значение получаемые из массива имеют нуль, то на выходе в строке +s.toFixed(2) выходит NaN. Как можно NaN поменять на 0?

  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>
#2 24 июня 2020 в 08:55
Есть функция javascript.ru/isNaN, ей можно проверить и вывести 0, если оно true.
А вообще, надо смотреть почему у вас получается NaN. Если вы работаете с числами, то может лучше с ними работать как с числами, а не строками. Для этого их надо перевести в числа функциями javascript.ru/ParseInt или javascript.ru/parsefloat
#3 24 июня 2020 в 09:39
А что такое s и t? Вы их объявляете где то?
  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 ]
#4 24 июня 2020 в 18:23

Есть функция javascript.ru/isNaN, ей можно проверить и вывести 0, если оно true.
А вообще, надо смотреть почему у вас получается NaN. Если вы работаете с числами, то может лучше с ними работать как с числами, а не строками. Для этого их надо перевести в числа функциями javascript.ru/ParseInt или javascript.ru/parsefloat

Loadырь
Спасибо, да надо почитать .

А что такое s и t? Вы их объявляете где то?

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

По остальному все понял, пошел учить))
#5 24 июня 2020 в 20:32
В яваскрипте надо объявлять переменные изначально, потом им присваивать значения. Можно сделать объявление с присвоением одной строкой.
  1. var s = value[1] - value[0];
  2. var t = value[0] - value[1];
#6 24 июня 2020 в 20:53

В яваскрипте надо объявлять переменные изначально, потом им присваивать значения. Можно сделать объявление с присвоением одной строкой.

Loadырь
Да действительно моя ошибка, но по поводу var и let разница есть, но себя нужно приучать к let?
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.