Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Бухгалтерия (Visor123) 09/07/2004 - 11:10:07
      Re: А как они округляются? (Marat_L) 09/07/2004 - 12:46:02
      Re: Озверели что ли??? (Alec) 09/07/2004 - 15:08:18
      Re: Озверели что ли??? (Валентин) 09/07/2004 - 15:38:54
      Re: /// (Валентин) 09/07/2004 - 15:42:31
      Re: .... (Валентин) 09/07/2004 - 15:51:46
      Re: Где можно почитать про такое округление? (Marat_L) 09/07/2004 - 16:32:02
      Re: Где можно почитать про такое округление? (Dinky) 09/07/2004 - 23:41:42
      Re: Почитать (Валентин) 10/07/2004 - 10:58:24
      Re: Ну так как господа матерые программеры? (Валентин) 10/07/2004 - 11:03:42
      Re: Ну так как господа матерые программеры? (Marat_L) 12/07/2004 - 08:40:45
      Re: -> Marat_L (Валентин) 12/07/2004 - 10:45:49
      Re: -> Marat_L (Marat_L) 12/07/2004 - 11:06:20
      Re: select round(3.555,2); выдает 3,55 ???? (Marat_L) 12/07/2004 - 11:10:14
      Re: -> Marat_L (Валентин) 12/07/2004 - 13:16:42
      Re: Спасибо, буду читать (Marat_L) 12/07/2004 - 14:06:19
      Re: В Stored function это выглядит так (Валентин) 12/07/2004 - 15:46:14
      Re: Я понял!!! (Marat_L) 12/07/2004 - 16:09:06
      Re: Ну так как господа матерые программеры? (walrus) 12/07/2004 - 17:13:41
      Re: -> walrus, Marat_L (Валентин) 13/07/2004 - 10:31:49
      Re: -> walrus, Marat_L (Marat_L) 13/07/2004 - 12:05:51
      Re: Неверное округление!!!! Откопал!!! (Marat_L) 13/07/2004 - 15:33:33
      Re: Спасибо. (Валентин) 13/07/2004 - 16:49:56
      Re: Можно, в принципе, переписать сам ROUND (Marat_L) 14/07/2004 - 15:15:43
      Re: Можно, в принципе, переписать сам ROUND (Валентин) 14/07/2004 - 16:13:16
      Re: Можно, в принципе, переписать сам ROUND (Dinky) 14/07/2004 - 18:11:04
      Re: Вряд ли такое округление нужно многим (Marat_L) 15/07/2004 - 08:53:12
      Re: MySQL AB поступило правильно (Валентин) 15/07/2004 - 14:07:49

> Original message text:
> From: Visor123 - 09/07/2004 - 11:10:07
> Subject:Бухгалтерия
> -----------------
> Кто-нибудь делал или знает где взять функцию под MySQL для округления бухгалтерских сумм, аналог round, но в бухгалтерии суммы к копейкам округляются не математически...
>


From: Marat_L - 15/07/2004 - 08:53:12
Subject:Вряд ли такое округление нужно многим
-----------------
Поэтому вряд ли ОНИ это сделают.

Что касается сишного кода
Может стоит попробовать это?
(У меня тоже нет компилятора, поэтому не пробовал, также неуверен в скорости выполнения. Будет медленнее старого - это точно)

==========================================
double Item_func_round::val()
{
double value=args[0]->val();
int dec=(int) args[1]->val_int();
uint abs_dec=abs(dec);
double tmp;
/*
tmp2 is here to avoid return the value with 80 bit precision
This will fix that the test round(0.1,1) = round(0.1,1) is true
*/
volatile double tmp2;

if ((null_value=args[0]->null_value || args[1]->null_value))
return 0.0;
tmp=(abs_dec < array_elements(log_10) ?
log_10[abs_dec] : pow(10.0,(double) abs_dec));

if (truncate)
{
if (value >= 0)
tmp2= dec < 0 ? floor(value/tmp)*tmp : floor(value*tmp)/tmp;
else
tmp2= dec < 0 ? ceil(value/tmp)*tmp : ceil(value*tmp)/tmp;
}
else
{
/* New code:::*/
if (dec <0)
{
tmp2=value/tmp;
if ( floor(floor(tmp2)/2)== floor(tmp2)/2 )
tmp2=floor(tmp2)*tmp;
else
tmp2=ceil(tmp2)*tmp;
else

}
else
{
tmp2=value*tmp;
if ( floor(floor(tmp2)/2)== floor(tmp2)/2 )
tmp2=floor(tmp2)/tmp;
else
tmp2=ceil(tmp2)/tmp;
else
}

/* Old code::: tmp2=dec < 0 ? rint(value/tmp)*tmp : rint(value*tmp)/tmp; */
}
return tmp2;
}

==========================================


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
16087



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |