Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Неприятные особенности типа Money
|
|||
|---|---|---|---|
|
#18+
Господа, имеется таблица, содержащая сведения о денежных начислениях группе сотрудников, т.н. "наряд". Нужно раскрутить на всех некую премию, разбив ее пропорционально уже имеющимся в таблице сведениям. Для этого запускается Update, который успешно отрабатывает. Все бы ничего, но поля для хранения народных финансов я соблазнился сделать типа Money. В результате получается вот какой казус: работающий после всего этого отчет утверждает, что сумма по столбцу "Премия" как раз равна значению, которое мы "раскручивали", а если посчитать ручками, то НЕТ (причем не всегда). Т.е. если хотели разбить 111.11 руб. на троих, то что-то типа: Премия 1-й 11,17 2-й 65,36 3-й 34,59 -------- 111,11 А на самом деле 11,17+65,36+34,59=111,12 руб ! Разница всего на копейку, однако неприятно. Оказалось , что сумма в отчете ВЕРНА, т.к. злой комп складывает не те значения типа Money, которые коварно отображаются в гриде и отчете, а нечто с 3-5 знаками после запятой, скрывающееся под их личиной (я привел Money к Str и убедился в этом). Вопрос: как ФОРМАТИРОВАТЬ результат Update? Если никак, то какое существует надежное решение для округления значений нужного поля до N знаков? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2003, 00:24 |
|
||
|
Неприятные особенности типа Money
|
|||
|---|---|---|---|
|
#18+
Pozdravlyu !!! Ybedi buxgaltera, chto eto neizbejno ili pishesh eshe odnu proceduru posle formirovaniya otcheta, tebe pridetsya yznat` summu, na kotoruu "ne iidet" otchet, podelit` ee mejdu ichastnikami proporcionalno ix premiyam, i otnyat` y nix etu summu. ya v svoe vremya ybil ne odin chas chto bi ob`yasnit` glavnomu buxgalteru, chto 3.5 + 5.5 <> Round(3.5) + Round(5.5) udachi ;)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2003, 05:13 |
|
||
|
Неприятные особенности типа Money
|
|||
|---|---|---|---|
|
#18+
v tvoem sluchae nado y 2-й 65,36 otnyat` 1 kopeiku ;) potomu, chto y nego samaya bolshaya premiya ;)) delitsya nado ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2003, 05:15 |
|
||
|
Неприятные особенности типа Money
|
|||
|---|---|---|---|
|
#18+
В том и фишка, чтобы узнать ту самую "разницу" между тем, что отображается и что есть на самом деле. Select sum("Премия") все те же 111.11 руб. :( Дополнительный вопрос в тему : можно ли не используя механизм фильтров провести несколько действий с КАЖДОЙ из удовлетворяющей определнному условию записей? (Если угодно, аналог scan...endscan в FoxPro). P.S. dragonx, а round так,как ты упомянул работает в фоксе, в Delphi он вроде бы округляет до целого. Ты что, тоже родом из фокса ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2003, 21:05 |
|
||
|
Неприятные особенности типа Money
|
|||
|---|---|---|---|
|
#18+
Мэтры, неужто же Delphi не дает возможности нормально округлять народные деньги ??? В принципе, возможна цепочка CurrToStr-StrToFloat-FloatToStrF(до 2 знаков)-StrToCurr, но ведь это же извращение ! К тому же опять как без фильтров, попроще, надругаться таким образом над каждой записью, для которой раскручивали премию (ведь update применяется НЕ КО ВСЕЙ таблице, а к некоторой ее части). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2003, 20:28 |
|
||
|
Неприятные особенности типа Money
|
|||
|---|---|---|---|
|
#18+
Не дождамшись ответа, сделал так: 1)поставил Number вместо Money 2)использовал фильтр вместо запроса 3)пробежал по отфильтрованной таблице после раскрутки премии и преобразовал поле с премией так: bufer:=FloatToStrF(Prem,ffFixed,9,2), а затем Prem.Value:=StrToFloat(bufer). И стало мне счастье. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2003, 23:51 |
|
||
|
Неприятные особенности типа Money
|
|||
|---|---|---|---|
|
#18+
Ezhov писал:имеется таблица, содержащая сведения о денежных начислениях группе сотрудников, т.н. "наряд". Нужно раскрутить на всех некую премию, разбив ее пропорционально уже имеющимся в таблице сведениям. Для этого запускается Update, который успешно отрабатывает. Все бы ничего, но поля для хранения народных финансов я соблазнился сделать типа Money. Это где у тебя таблица-то? Что-то я не нашел в Дельфях тип Money Ezhov писал:т.к. злой комп складывает не те значения типа Money, которые коварно отображаются в гриде и отчете, а нечто с 3-5 знаками после запятой, скрывающееся под их личиной (я привел Money к Str и убедился в этом). И откуда там такие значения? Как ты премию-то делишь? Может оттуда они и получаются? Потому как только во float вместо 5 может лежать 4.99999999999, а все остальные работают точно -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2003, 18:17 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=32285693&tid=2116494]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
73ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 408ms |

| 0 / 0 |
