Даешь транспаретность.... мазафака.
На сайте www.paywatch.org можно сравнить свою зарплату с салариу почти любой крупной конторы США.Я вот свою сравнил с зарплатой директора Макромедии (одна из ведущих графических фирм) и Микросакса (ака Микрософт). На фоне его 2 лимоном баксов я смотрелся бледно :)Но речь не об этом.Даешь млина транспарентность! Хочу такой же сайт по РМ!И думаю это хороший совет президенту.Ну а то что он не будет реализован это и ежу понятно ://
не прикольно.
Pare stupid la prima vedere, dar!
Daca citesti documentatia gasesti si raspunsul.
Deci, dupa atribuirea valorii de 1999, $price este de tip double.
Citind documentatia despre numerele reale la http://us.php.net/manual/en/language.types.float.php gasesti o avertizare
It is typical that simple decimal fractions like 0.1 or 0.7 cannot be converted into their internal binary counterparts without a small loss of precision. This can lead to confusing results: for example, floor((0.1+0.7)*10) will usually return 7 instead of the expected 8, since the internal representation will be something like 7.9
E destul de interesant de vazut cum alte limbaje rezolva (sau nu) aceasta problema.
Deci daca reprezentarea 1999 double in PHP este 1998.9999999999998 => atunci raspunsul la de ce echo intval($price) . "
\n"; afiseaza 1998 e destul de clar (eu cred). intval() intoarce doar partea intreaga a numarului.
echo intval("$price") . "
\n";
Afiseaza 1999, pentru ca se face casting in string, din cauza la ghilimele: "".
Iar ultimul rand precum am zis e din cauza la reprezentarea interna a numerelor reale.
я эту ошибку нашел в одной российской коммерческой cms
они фиг знает скольким клиентам уже ее продали
и с такой вот фигней