Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Точность вычислений.
 
 автор: tAleks   (13.12.2010 в 12:50)   письмо автору
 
 

<?php
echo 94.8 95.7;
echo 
'<br />';
echo 
94.8 95.6;
?>


На сервере этот скрипт выдает:


-0.90000000000001
-0.8 


На локальной машине:


-0.9
-0.8 


Подскажите что и где надо подкрутить в настройках сервера, чтобы испаравить этот глюк?

  Ответить  
 
 автор: Trianon   (13.12.2010 в 13:21)   письмо автору
 
   для: tAleks   (13.12.2010 в 12:50)
 

ничего :)
всё в пределах нормы - это же вещественные числа :)

  Ответить  
 
 автор: tAleks   (13.12.2010 в 20:32)   письмо автору
 
   для: Trianon   (13.12.2010 в 13:21)
 

А почему на локальной машине нет такого глюка?

  Ответить  
 
 автор: Trianon   (13.12.2010 в 20:44)   письмо автору
 
   для: tAleks   (13.12.2010 в 20:32)
 

я не вижу никакого глюка.
Особенности представления вещественных чисел, равно как и то, почему у них иногда на ровном месте возникают хвосты вроде n.nnn9999999n или n.nnn0000000n, я разжевывал в этом форуме с полдесятка раз.
Если Вы считаете аналоговые величины - ничего страшного у Вас не произойдет.
Если деньги - сам себе злобный буратино. Деньги в вещественных числах не представляют.

  Ответить  
 
 автор: tAleks   (15.12.2010 в 17:02)   письмо автору
 
   для: Trianon   (13.12.2010 в 20:44)
 

> Особенности представления вещественных чисел, равно как и то, почему у них иногда на ровном месте возникают хвосты вроде n.nnn9999999n или n.nnn0000000n, я разжевывал в этом форуме с полдесятка раз.

Дайте, плиз, ссылку на тему.


>Деньги в вещественных числах не представляют.

А в каких числах представляют деньги?

  Ответить  
 
 автор: Trianon   (15.12.2010 в 17:07)   письмо автору
 
   для: tAleks   (15.12.2010 в 17:02)
 

>А в каких числах представляют деньги?
зависит от требуемой точности.
К примеру, если требуется точность "до копейки" -можно в виде целого числа копеек держать.
А при выводе добавлять точку перед второй справа цифрой.
Но не стоит забывать и о диапазоне представления - в стадартное целое 32бит сумма сильно больше 20 миллионов просто не войдет.

В MySQL есть тип DECIMAL, в котором и величину и точность можно задать явно.

UPD.
Между прочим, cheops как-то говорил, что в php.ini есть параметр precision ...

  Ответить  
 
 автор: Красная_шляпа   (13.12.2010 в 13:52)   письмо автору
 
   для: tAleks   (13.12.2010 в 12:50)
 

round'ом округляй если не нравится

  Ответить  
 
 автор: tAleks   (13.12.2010 в 20:33)   письмо автору
 
   для: Красная_шляпа   (13.12.2010 в 13:52)
 

round'ом придется все скрипты перекопать, а хочется, чтобы сприпты не кавырять.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования