|
|
|
|
|
для: Евгений Петров
(06.01.2006 в 01:40)
| | Ничего не понял, ладно - практика мне объяснит. К сожалению, сейчас ничего проверить не могу, но к утру - буду более эрудирован. Спасибо. | |
|
|
|
|
|
|
|
для: Shorr Kan
(06.01.2006 в 01:35)
| | И кстати если округлить 23.34997 то будет не 23.34 а 23.35 :)))) | |
|
|
|
|
|
|
|
для: Shorr Kan
(06.01.2006 в 01:35)
| | 23.35002-0.005 = 23.34502 округляем = 23.35
вы скрипт запустите и сами во всем убедитесь | |
|
|
|
|
|
|
|
для: Евгений Петров
(06.01.2006 в 01:32)
| | 23.35002-0.005 = 23.34997 округляем = 23.34 ... а должно быть 23.35 | |
|
|
|
|
|
|
|
для: Shorr Kan
(06.01.2006 в 01:26)
| | Количество нулей после запятой, это количество знаков которое надо обрезать. И он не округлит а именно обрежет. Например нам надо получить число 23.34:
минимальное число 23.3400000
максимальное число 23.3499999
теперь вычитаем:
из первого: 23.34-0.005 = 23.335 округляем = 23.34
из второго: 23.34999-0.005 = 23.34499 округляем = 23.34
таким образом числа как бы обрезаются | |
|
|
|
|
|
|
|
для: Евгений Петров
(06.01.2006 в 01:21)
| | вариант
<?
$val = 23.3456789;
echo round(($val-0.005),2);
?>
кажется, округлит, а не обрежет.
И почему -0.005 ? | |
|
|
|
|
|
|
|
для: Shorr Kan
(06.01.2006 в 01:18)
| | Мне кажется проще и быстрее мой последний вариант, там где 0.05 вычитается | |
|
|
|
|
|
|
|
для: Shorr Kan
(06.01.2006 в 01:18)
| | Зато строковыми функциями быстрее получится... хотя, конечно, не вооружённым взглядом это вряд ли можно заметить... | |
|
|
|
|
|
|
|
для: isset
(06.01.2006 в 00:38)
| | Я не думал, что когда-нибудь скажу такое.... но не кажется ли вам, что регулярным тут попроще?...
а вариант
<?
$val = 23.3456789;
echo round(($val-0.005),2);
?>
кажется, округлит, а не обрежет. | |
|
|
|
|
|
|
|
для: Евгений Петров
(06.01.2006 в 00:31)
| | На всякий, чтобы не было проблем с разными локалями:
<?
$val = 23.34546;
$to = (($to = strpos($val,".") || ($to = strpos($val,","))) == null)?strlen($val):$to;
echo substr($val,0,$to+3);
?>
|
| |
|
|
|
|