PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (35): В начало « ... 8 9 10 11 [12] 13 14 15 16 ... » В конец

> Найдено сообщений: 520
eai Отправлено: 09 Августа, 2013 - 17:24:53 • Тема: Как реализовать "такое" на php, mysql • Форум: Вопросы новичков

Ответов: 9
Просмотров: 324
vanya_sl пишет:
eai
Ну не все такие умные как вы ... Думаю для начинающего нормальный вопрос. Подмигивание


Думаю для начинающего вы не за то хватаетесь

Вы пытаетесь что то делать обладая нулевым кругозором в технологии.
Некоторые этому в ВУЗах учатся зачем то ....
eai Отправлено: 09 Августа, 2013 - 17:19:40 • Тема: Как реализовать "такое" на php, mysql • Форум: Вопросы новичков

Ответов: 9
Просмотров: 324

прям и не знаю что посоветовать, то ли букварь купить, то ли бутылку
eai Отправлено: 09 Августа, 2013 - 16:30:51 • Тема: асинхронность ajax запроса • Форум: JavaScript & VBScript

Ответов: 32
Просмотров: 5733
Код в студию
eai Отправлено: 09 Августа, 2013 - 15:47:48 • Тема: Формат денег в mysql (decimal) • Форум: Вопросы новичков

Ответов: 34
Просмотров: 1973



Помнится сидел я гастарбайтером в хамабурге

Нажрался этих округлений досыта.

Надо было сумму распределить на двумерную матрицу.

Короче консультант (специальный бюргер который ниче не делал, тоа советы давал) сказал что все разницы округления валить на нижнюю правую ячейку, типа Das ist Okey.

Еще до этого на наших новорушь приглашенным спецом работал, ГКО автоматизировал, все ок было , но через несколько месяцев выяснилась разницы с учетной системой биржи на несколько копеек по некоторым счетам. Я вообщем отлично вывернулся, затребовал что бы мне дали метод округления который я должен применить ... в итоге проблема решалась ручной корректировкой раз в месяц.

eai Отправлено: 09 Августа, 2013 - 15:28:09 • Тема: Формат денег в mysql (decimal) • Форум: Вопросы новичков

Ответов: 34
Просмотров: 1973
caballero пишет:


програмер забыл - это проблема прямых рук программера и прямых глаз тестировщика


Где взять гениев?
Примите как факт что большую часть прикладного кода пишут середнячки.
И даже большой мастер иногда наступает в какашку.

А тестер ваще роскошь :P
eai Отправлено: 09 Августа, 2013 - 15:21:55 • Тема: Формат денег в mysql (decimal) • Форум: Вопросы новичков

Ответов: 34
Просмотров: 1973
caballero пишет:
Цитата:
До слез хочу в Пыхе перегрузку операторов для объектов по этой причине

это не причина для перегрузки
на самом деле все вычисления в PHP тоже можно вести в копейках и не иметь проблем

только юзеру на екран уже форматировать


Чревато ошибками (периодически программер будет забывать поправить вывод)

а вот если бы так

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. class fixed
  4. {
  5.  
  6. public function __PLUS($val)
  7. {
  8. }
  9.  
  10. }
  11.  
  12.  


то можно было бы создавать класс с фиксированной запятой без ошибок округления и все такое, да вообще с любым заданным поведением.
eai Отправлено: 09 Августа, 2013 - 15:17:24 • Тема: Формат денег в mysql (decimal) • Форум: Вопросы новичков

Ответов: 34
Просмотров: 1973
caballero пишет:
более разумная практика вести учет в копейках и юзать int
заодно Бд будет чуть быстрее работать


До слез хочу в Пыхе перегрузку операторов для объектов по этой причине
eai Отправлено: 09 Августа, 2013 - 15:14:25 • Тема: Формат денег в mysql (decimal) • Форум: Вопросы новичков

Ответов: 34
Просмотров: 1973
nepster пишет:
в минусе пользователь.



Я тебя уже ненавижу! Улыбка
eai Отправлено: 09 Августа, 2013 - 15:10:04 • Тема: Формат денег в mysql (decimal) • Форум: Вопросы новичков

Ответов: 34
Просмотров: 1973
Мелкий пишет:
nepster пишет:
на сколько корректно будет работать

Некорректно.
4.00006 должно округляться до 4.0001
1.99997 - до 2
Правила округления давно видели?

Если вам по бизнес-логике нужно округлять в меньшую сторону - floor


Топикпастер как раз обозначил начало беседы что ему математический метод округления не катит.
eai Отправлено: 09 Августа, 2013 - 15:02:27 • Тема: Формат денег в mysql (decimal) • Форум: Вопросы новичков

Ответов: 34
Просмотров: 1973
nepster пишет:
function my_number_format($number, $dec_point = '.')


Попахивает бесовщиной Улыбка
eai Отправлено: 09 Августа, 2013 - 14:51:41 • Тема: Формат денег в mysql (decimal) • Форум: Вопросы новичков

Ответов: 34
Просмотров: 1973
DlTA пишет:
eai пишет:
Как решение
$money = ((int)($money*10000))/10000;
нет, это не решение

а деньги хранят в целочисленному количестве копеек (ну или что у вас там минимальная единица расчета)


Почему не решение, Реально интересно.

А насчет вашего решения , то я бы так и сделал, но вопрос насколько много уже кода и как много надо переделывать.

По уму надо бы специальный тип данных, аля "С фиксированной запятой"
eai Отправлено: 09 Августа, 2013 - 14:23:32 • Тема: Формат денег в mysql (decimal) • Форум: Вопросы новичков

Ответов: 34
Просмотров: 1973
Да чета раунд глючит ... мож проблема и в прокладке ...

Как решение
$money = ((int)($money*10000))/10000;

Да и осторожно при формировании выражения SQL, не знаю каким методом вы его формируете.
eai Отправлено: 09 Августа, 2013 - 13:54:33 • Тема: Формат денег в mysql (decimal) • Форум: Вопросы новичков

Ответов: 34
Просмотров: 1973
Округли записываемое значение до точности колонки.

round($data, 4, PHP_ROUND_HALF_DOWN)

ну или точность колонке на мускле увеличь до 5ти знаков
eai Отправлено: 09 Августа, 2013 - 13:43:27 • Тема: PHP неправильно проводит вычесления • Форум: Вопросы новичков

Ответов: 6
Просмотров: 258
soffrick пишет:

а что насчёт этого
PHP:
скопировать код в буфер обмена
  1. echo (int) ((0.1 + 0.7) * 10); // 7



0.1 + 0.7 = 0.7999999999
0.7999999999 * 10 = 7.999999999
floor(7.999999999) = 7
eai Отправлено: 09 Августа, 2013 - 12:37:32 • Тема: PHP неправильно проводит вычесления • Форум: Вопросы новичков

Ответов: 6
Просмотров: 258
Нецелые числа вообще по стандарту производят вычисления с некоторой точностью (в зависимости от стандарта и реализации).
(некоторые вычисления сложных мат. функций производятся специальными не хилыми по сложности методами, результатом которых является приблизительное значение, однако это позволяет получить результат в разумные сроки с требуемой точностью.)

Т.Е. вы не в праве ожидать что с точки зрения математики будет все ок.

Округляйте результат до требуемой вами точности и будет вам счаЗтье.

Если же вам прям кровь из носу нужно повысить точность то вам надо использовать специальные Математические библиотеки со специальными типами данных.
(Добавление)
Навеяло

Нет и не может быть компьютера способного отразить число Пи

Улыбка

Страниц (35): В начало « ... 8 9 10 11 [12] 13 14 15 16 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB