Форум → Программирование → PHP для идиотов → Cache: remove by tag or by pattern?
Cache: remove by tag or by pattern?
Страницы: ← Предыдущая страница →
-
-
9 мая 2010 г. 7:45, спустя 5 часов 40 минут 7 секунд
Если серьезно, то это проблема не SMF и не PHP, а вообще округления чисел с плавающей запятой. Постоянно сталкиваюсь с такими заморочками:
Пусть сумма долей неважно чего равна единице. Предположим доли разложились как 0.45 и 0.55, а требуемая точность вывода - одна десятая. Округляем до десятых по математическим правилам:
0.5 и 0.6 в сумме дают 1.1 (!!!)
Мы можем увеличить точность вывода до сотых и всё станет ок (для этого случая), но потом случится 0.445 и 0.555. Округляем до сотых:
0.45 и 0.56 в сумме дают 1.01 (!!!)
Если вместо округления использовать отбрасывание лишних разрядов, то легко наткнуться на обратный эффект:
0.44 и 0.55 в сумме 0.99
Задача решения не имеет для настоящих плавающих чисел. Есть грязный хак, когда мы вычисляем одно из слагаемых обратным расчетом для уже округленных данных x = 1 - y … Тогда на страничке все будет выглядеть ОК, но может не соответствовать реальным данным.
Прилично выглядит только математика с фиксированной точкой.
Спустя 22 сек.С уважением,
КОιιlllιlllι унц-унц -
9 мая 2010 г. 13:28, спустя 5 часов 42 минуты 25 секунд
artoodetoo,
да плавающая точк - такая херня, не позволяет представлять точно десятичные дроби, вернее десятичную дробь нельзя представить с такой же точностью в виде двоичной дроби. Надо было придумывать не двоичную систему исчисления :)
Кстати я всегда думал, что грязный хак умножать на несколько порядков и округлять до целых!!! -
9 мая 2010 г. 14:16, спустя 48 минут 37 секунд
Дуд морозится и не хочет рассказывать про свои группировки -
9 мая 2010 г. 14:46, спустя 29 минут 57 секунд
это $parentId
Дуд морозится и не хочет рассказывать про свои группировки
чтобы можно было указать прямой ключ и ключ/и для "группировки", то есть есть например кеш запись user-$id-profile, если user-$id-rss, user-$id-messages и хочу все снести, так мне нравитсо бы удалить все с помощью $cache->removeByParent($id), а не 10 ревовав, а каких? еще надо знать :)Сапожник без сапог -
9 мая 2010 г. 14:51, спустя 4 минуты 35 секунд
мм, так а как это реализовывается? Вот у меня в remove можно задать шаблон для удаления (в голосовалке же он даже):$cache->remove("user-$id-*"); // паттерн. * эквивалентно (.+?)
-
9 мая 2010 г. 14:54, спустя 3 минуты 13 секунд
Абырвалг, интересно как ты это все "удаляешь", ключи чтоли перебираешь?Спустя 17 сек.это немножко не шаблон какбы)Спустя 13 сек.это именно родитель/родителиСапожник без сапог -
9 мая 2010 г. 15:03, спустя 9 минут 7 секунд
ключи чтоли перебираешь?
даСпустя 29 сек.ну нахуярь код, посмотрим че там) потому что я не понял как это делается -
9 мая 2010 г. 15:14, спустя 10 минут 33 секунды
Абырвалг, мне пока некогда, занятСапожник без сапог
Страницы: ← Предыдущая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!