Неправильно срабатывает IF



  • Подскажите пж, почему не срабатывает условие на картинке? Всю голову сломал. Далее IF и идёт на пропуск.
    Дробные числа? Неправильная запись, типа скобок? Пробовал по разному, а самое интересное, что без переменной всё работает как надо, т.е. если я пропишу 160,53 > 80, то условие выполнится.
    182f6b2e-de44-42e7-a46b-61401926ce31-изображение.png



  • @Tacker-Donovan, не работает потому что вы сравниваете строку с числом.

    @GhostZ said in Expression:

    @kaget, "Получить текст" получает строку, а строка это не число. Строка + Строка = СтрокаСтрока. https://learn.javascript.ru/types-intro

    @GhostZ said in Expression:

    @kaget, Если в переменных нет лишних символов кроме чисел то просто оберните в Number() Number([[TEMP1]]) + Number([[TEMP2]])



  • Обернуть не помогло. Но я разобрался: попробовал задать дробную int-переменную и понял, что запятая там не ставится - только точка. Как понимаю в этом и была проблема. Добавил строку замены запятой на точку в своём скрипте, протестил - вроде работает. В этом было дело?



  • @Tacker-Donovan, и в том что сравнивали строку с числом и в том что в строке была запятая а не точка

    str = "160,53";
    int = Number(str); // NaN, ошибка
    
    str = "160.53";
    int = Number(str); // 160.53
    


  • @GhostZ
    получается, что и сейчас сравниваю строку с числом, но работает. Может быть есть какое-то автораспознание в выражении?
    42cf994c-1b70-46bd-b8f4-b8cf533148cf-изображение.png





  • @GhostZ

    Значения разных типов при сравнении приводятся к числу. Исключением является сравнение с помощью операторов строгого равенства/неравенства.
    

    Спасибо! Узнал что-то новое.


Log in to reply