Об игре
Новости
Войти
Регистрация
Рейтинг
Форум
20:54
3822
 online
Требуется авторизация
Вы не авторизованы
   Форумы-->Техническая поддержка-->

АвторИсчезло 0,1 бриллианта.
сабж. купил драка сегодня, было 8,2. Драк стоит 2 брюлла, сейчас 6,1? Как так? Мне не жалко, просто поясните почему произошло исчезновение.
Возможно, округление
с чего вдруг? почему тогда не 6 оставили?
^
с чего вдруг? почему тогда не 6 оставили? там округление идет до десятых, скорее всего пост 2 прав.
понимаешь, у меня в голове не укладывается после матфака, как получается 8,2-2=6,1? или дракон стоит 2,0...пипецскоканулей..1 и округлилось в нижнюю сторону? 0,2 емнип я получил по акции, и так и не нашел куда их потратить, так они у меня и болтались. Хочу понять механику данного действа ).

И да, если бы округляли до десятых, то зелья не стоили бы 0,5брюлла, а стоили бы полноценно 1.
для Andi_vrn:
у меня в голове не укладывается после матфака
значит ты не знаешь что такое переменная типа Float.
если Админы ее используют, то как раз в ней 2,0...пипецскоканулей..1
7+

Числа с плавающей точкой имеют ограниченную точность. Хотя это зависит от операционной системы, в PHP обычно используется формат двойной точности IEEE 754, дающий максимальную относительную ошибку округления порядка 1.11e-16. Неэлементарные арифметические операции могут давать большие ошибки, и, разумеется, необходимо принимать во внимание распространение ошибок при совместном использовании нескольких операций.

Кроме того, рациональные числа, которые могут быть точно представлены в виде чисел с плавающей точкой с основанием 10, например, 0.1 или 0.7, не имеют точного внутреннего представления в качестве чисел с плавающей точкой с основанием 2, вне зависимости от размера мантиссы. Поэтому они и не могут быть преобразованы в их внутреннюю двоичную форму без небольшой потери точности. Это может привести к неожиданным результатам: например, floor((0.1+0.7)*10) скорее всего вернет 7 вместо ожидаемого 8, так как результат внутреннего представления будет чем-то вроде 7.9999999999999991118....

Так что никогда не доверяйте точности чисел с плавающей точкой до последней цифры, и не проверяйте напрямую их равенство.





Вот почитай
http://www.php.net/manual/ru/language.types.float.php

п.с.
это не РВС
У вас есть 4.19 бриллиантов. зашел в помощь проекту и увидел куда уплыл 0,1. Действительно округлился вниз.
про плавающую точку не подумал =). Да и не должен ), вообще будучи нубом и тратя игровую валюту еще не хватало задумываться, куда деваются копеечки. Смысл понял. Тему можно крыть.
для Andi_vrn:
Тему можно крыть.Так вчем дело :) Кнопка в низу темы !
забыл нажать ) еще раз всем спасибо
тема закрыта by Andi_vrn (2014-04-11 10:10:34)
К списку тем
2007-2025, онлайн игры HeroesWM