Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/35: Рейтинг темы: голосов - 35, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 12.12.2018
Сообщений: 42

Некоректно работает if

07.06.2021, 10:48. Показов 6828. Ответов 6

Студворк — интернет-сервис помощи студентам
Привет однофорумчане, сегодня назрел вопрос по поводу сравнения в php. Такая проблема при создании магазина.
Пользователь выбирай товар определенной суммы которую сам выбирает и если эта сумма превышает баланс то выдаем ему ошибку. Так вот я делаю это просто через if вот так:
PHP
1
2
3
4
5
6
<?php if($sum >= $balance){
//Совершаю любое действие.
}else{
//Вывожу ошибку
exit("Ваш баланс меньше допустимой суммы!");
}?>
И вот уже при использовании этого кода все должно работать нормально, но это когда то работает, а когда-то выдает ошибку, хотя баланс не меньше суммы. И вот вопрос в чем может быть проблема? Помогите разобраться пожалуйста, заранее благодарен уделенному времени
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.06.2021, 10:48
Ответы с готовыми решениями:

Некоректно работает регулярное выражение
Доброго времени суток! Как доработать это регулярное выражение под следующий файл(во вложении)? $file = file('data.txt'); ...

В Windows Forms некоректно работает метод, хотя в консоли работает правильно
//Данный метод должен заменять все элементы в массиве на 1, после найменьшего. public string getNewArray(int array) { ...

JFrame работает некоректно
не могу понять почему при запуске примерно только 2 раза из 10 окно отображается правильно, другие случаи фрейм отображается пустым и его...

6
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
07.06.2021, 11:34
Очевидно проблема не в этом коде. И вряд ли не работает IF, скорее $sum и $balance имеет кривые значения.
Нужно дебажить, смотреть какой код влияет на эти переменные. По хорошему тут нужно логи ставить,чтобы понимать в какой момент значения стали некорректными.
0
467 / 431 / 117
Регистрация: 15.02.2012
Сообщений: 1,947
07.06.2021, 12:38
Скорее всего если сравниваются числа все сходится, а если строковые значения, то нет.

к примеру:
PHP
1
2
3
4
5
6
7
$sum='1,20';
$balance='1.20';
if($sum >= $balance){
print_r('ok');
}else{
print_r('no_ok');
}
вернет 'no_ok', а если поменять местами, то 'ok'
PHP
1
2
3
4
5
6
7
$sum='1.20';
$balance='1,20';
if($sum >= $balance){
print_r('ok');
}else{
print_r('no_ok');
}
Причем и в первом примере и во втором некорректные данные
0
0 / 0 / 0
Регистрация: 12.12.2018
Сообщений: 42
07.06.2021, 13:27  [ТС]
Скорее всего вы правы, но как преобразовать строчный элемент в числовой?
0
Супер-модератор
Эксперт JSЭксперт HTML/CSSЭксперт PHP
 Аватар для gogolik
3951 / 2060 / 829
Регистрация: 13.03.2010
Сообщений: 6,776
07.06.2021, 13:33
Leoquant, floatval, например.
1
467 / 431 / 117
Регистрация: 15.02.2012
Сообщений: 1,947
07.06.2021, 13:54
Лучший ответ Сообщение было отмечено Leoquant как решение

Решение

что-нибудь в таком духе

PHP
1
2
3
4
5
6
7
8
$sum='1 000,15';
 
$a=str_replace(array(',',' '), array('.',''), $sum);
$b=floatval($a);
 
print_r($b);
 
//1000.15
можно обернуть в функцию, чтобы под каждую переменную не писать подобное
1
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
07.06.2021, 14:01
Цитата Сообщение от Leoquant Посмотреть сообщение
Скорее всего вы правы
А надо чтоб было не скорее всего, а точно. Сперва нужно установить в чём проблема, и только потом исправлять.
http://phpfaq.ru/debug
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.06.2021, 14:01
Помогаю со студенческими работами здесь

Некоректно работает IntersectsWith
Здравствуйте. Я снова лезу к вам на форум со своими &quot;кубиками&quot;. На этот раз, как вы уже догадались, у меня косяк с IntersectsWith. вот...

Некоректно работает программа
Дорое утро всем. У меня возникло несколько вопросов . 1. Не пойму почему не могу выбрать 8 и 9 пункт меню. 2. Когда вывожу задолжность...

Функция _getch() работает некоректно
Привет, ребят. Учусь недавно. Столкнулся с такой вот проблемой: функция _getch() работает некоректно. Написал код чисто для примера: ...

Некоректно работает жесткий диск
Завис компьютер во время просмотра фильма, после перезагрузки диск не определялся в системе, в диспетчере устройств был в разделе Дисковые...

Колесико на мыши некоректно работает
Уже вторая мышка так делает. Сначала все хорошо работало, я ничего не переустанавливала, драйверов не обновляла..А колесико перестало...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru