странный ceil() ??

LSD^

Новичок
странный ceil() ??

Хмь.. а почему

var_dump(ceil(0.56 / 0.01));

дает float(57) ???
 

Adelf

Administrator
Команда форума
Потому что это округление "наверх".
0.56 / 0.01 получается примерно 56.000000004 какой-нибудь вот и результат. round юзай. И желательно перед такими вычислениями прочитать что такое float и как он себя ведет.
 

AmdY

Пью пиво
Команда форума
ничего странного нет, это нормально

-~{}~ 13.01.10 12:00:

опоздал
 

LSD^

Новичок
Автор оригинала: Adelf
Потому что это округление "наверх".
0.56 / 0.01 получается примерно 56.000000004 какой-нибудь вот и результат. round юзай. И желательно перед такими вычислениями прочитать что такое float и как он себя ведет.
в том то и дело что деление дает не 56.000000004, а чистый float(56) и окуруглять его по идее некуда. ну да ладно. мне round() не подходит, нужно вверх окурглять. спасибо :)
 

dimagolov

Новичок
LSD^, потому что var_dump округляет вывод:
PHP:
# php
<?php $a=0.56 / 0.01; $b=ceil($a); $c=$a - 56; var_dump($a); var_dump($b);  var_dump($c);

float(56)
float(57)
float(7.105427357601E-15)
 

LSD^

Новичок
Автор оригинала: dimagolov
LSD^, потому что var_dump округляет вывод:
PHP:
# php
<?php $a=0.56 / 0.01; $b=ceil($a); $c=$a - 56; var_dump($a); var_dump($b);  var_dump($c);

float(56)
float(57)
float(7.105427357601E-15)
да уж, все понятно.. как не странно, просто никогда не попадал на такое :))
 
Сверху