Объясните что за ...

scooterok

Новичок
Приветствую!

Я сейчас сойду с ума...

PHP:
if(3780/(1.05*36) >= 100){print "yes";}else{print "no";}
результат: no

PHP:
print ceil(67680/(0.94*36)*1000);
результат: 2000001

Это как??? :)
 

fixxxer

К.О.
Партнер клуба
Там про все. Желательно прочитать статью целиком, чтобы понимать, что такое флоаты.

Tl;dr сравнивать флоаты можно только в окрестности, в твоём случае - что то типа > 99.99999
 

scooterok

Новичок
Всё равно не пойму(
Можно в примерах показать какого вида код будет правильным?

Например:
PHP:
if(3780/(1.05*35) >= 100){print "yes";}else{print "no";}
Выводит: yes

А вот:
PHP:
if(3780/(1.05*36) >= 100){print "yes";}else{print "no";}
Выводит: no

Почему?
 

scooterok

Новичок
PHP:
if(3781/(1.05*36) >= 100){print "yes";}else{print "no";}
Выводит: yes
Как и должно быть!
 

scooterok

Новичок
Сделал так:
PHP:
if(ceil(3780/(1.05*36)) >= 100){print "yes";}else{print "no";}
Теперь вроде работает...
Еще буду тестировать.
 

AnrDaemon

Продвинутый новичок
Правильным будет не сравнивать числа с плавающей точкой. Вообще.
 

scooterok

Новичок
Ты читать умеешь?
Не надо мне хамить!
Можно было бы предложить вариант, а не просто написать не сравнивать вообще.
Я не спец в данном вопросе и редко обращаюсь с просьбами, у меня немного другая специфика работы!
 

AnrDaemon

Продвинутый новичок
Что за нервный народ пошёл… на простой, прямо заданный вопрос вместо простого ответа лезут огрызаться…

Господин @scooterok, да будет вам известно, что по реакции человека на простые вопросы легче всего составить представление о степени развития его воображения.
Если его первая реакция "да как он посмел, да я, я!!!" - с воображением у человека нелады и программистом он никогда не станет.
 

scooterok

Новичок
Что за нервный народ пошёл… на простой, прямо заданный вопрос вместо простого ответа лезут огрызаться…

Господин @scooterok, да будет вам известно, что по реакции человека на простые вопросы легче всего составить представление о степени развития его воображения.
Если его первая реакция "да как он посмел, да я, я!!!" - с воображением у человека нелады и программистом он никогда не станет.
Я не пытаюсь стать программистом, я этим занимался ранее, очень давно!!!
И имею свои проекты с кодом которых возникают такие проблемы!
Я потому как любитель спрашиваю у профессионалов!
А вот Вы задаете вопрос который провоцирует меня.
Естественно читать и писать я умею, а как Вы думали?
И давайте не будем разводить тут словоблудие, не хотите помочь не надо!

P.S. Эх времена раньше были, всем помогал бесплатно, единицы спасибо говорили, а сейчас никто помочь даже не может...
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Ввиду сложного характера тред-стартера и неумения пользоваться данным ему материалом - тред съезжает в оффтоп.
 

AmdY

Пью пиво
Команда форума
Кстати, заметил нездоровую тенденцию, мы уже давно не посылаем в гугл, а чаще даём прямые ссылки. Интересно, это связано с персонализацией поиска или разочарованием в интеллектуальном уровне вопрошающих гуглящиеся запросы? Хотя в данном случае - это школьный кур информатики, а не гугл.
 

scooterok

Новичок
Спасибо, но я не планировал изучать детали, я просто попросил помочь!
Не хотите помогать не надо, никто ж не заставляет.
Еще раз говорю, php люблю, раньше им занимался, но сейчас ни времени, ни сил изучать тонкости нет!
Я же не кинул кусок кода состоящий из тысячи строчек и не сказал - "на те, дерзайте"!
Сам выявил проблему, обнаружил как мне казалось такой баг и задал вопрос, не более.
Касательно гугл это был сарказм, жаль только Вы этого не поняли.
 

AnrDaemon

Продвинутый новичок
Тебе ПОМОГЛИ. Даже ОБЪЯСНИЛИ, почему именно так.
Или ты хотел, чтобы мы "помогли", переписав IEEE 754 ?
 
Сверху