Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ceil i dziwne zaokrąglanie
Forum PHP.pl > Forum > PHP
deha21
Mam coś takiego.
  1. $one=-3;
  2. $two=2;
  3. echo ceil(($one+$two)/2);

Wynik wskazuje na 0 ale zamiast 0 pokazuje -0. Jak zrobić żeby ceil zachował swoją funkcję ale ten minus został usunięty. Czy jest jakaś inna metoda niż sprawdzanie na IF'ie?
bzeebzee
Spróbuj tak:
  1. $one=3;
  2. $two=2;
  3. echo (ceil(($one+$two)/2))*(-1);

UWAGA: Nie sprawdzałem ale nie powinno sypać błędami
deha21
No prawie... Zamieniając liczby np. na -4 i -2, średnia powinna wyjść -3 a tym sposobem wychodzi 3. Potrzebuje czegoś uniwersalnego co zachowa się poprawnie w dwóch przypadkach.
vokiel
abs() - nie mylić z Absolutny Brak Szyi, czyli tzw. "Szyitami"
deha21
Chodzi o coś innego. Abs() z "-2" zrobi "2" a chodzi mi tylko o to, żeby nie robiło "-0" a "0" ... bo przecież "-0" jest nielogiczne.
r4xz
Cytat
oktam 10-May-2011 03:12
Actual behaviour:
echo ceil(-0.1); //result "-0" but i expect "0"

Workaround:
echo ceil(-0.1)+0; //result "0"


http://www.php.net/manual/en/function.ceil.php

nie sprawdzałem, ale mam nadzieję iż autor nie kłamie smile.gif

PS czasem warto poczytać komentarze - nawet z pozoru banalne funkcje kryją w sobie ciekawostki
deha21
Dzięki. Pomogło biggrin.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.