запрет курения в ресторанах
16 декабря 2012 года исполняется год, как на Украине вступил в силу закон о полном запрете курения который распространяется на кафе, бары, рестораны, столовые, закусочные, магазины, буфеты, кафетерии, ночные клубы и дискотеки. Стоимость штрафа за одну размещенную пепельницу может достигать 1000 евро.
Ходят слухи, что и в Молдове полностью запретят курить в ресторанах, кафе и барах. Люди бросят курить? Или будут выбегать на мороз? Пострадает ли ресторанный бизнес?
Ходят слухи, что и в Молдове полностью запретят курить в ресторанах, кафе и барах. Люди бросят курить? Или будут выбегать на мороз? Пострадает ли ресторанный бизнес?
не прикольно.
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
они фиг знает скольким клиентам уже ее продали
и с такой вот фигней