|
|
|
Как правильно работать с денежным типом и в него преобразовывать!!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
chislo=int(chislo*100)/100- это как-то криво особенно в запросах не подскажете как это сделать по-человечески ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 12:54:45 |
|
||
|
Как правильно работать с денежным типом и в него преобразовывать!!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 12:57:03 |
|
||
|
Как правильно работать с денежным типом и в него преобразовывать!!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
получается все пользуются ......... кривыми руками....... если нуно преобразовать 10945435.3452305 в 10945435.34 а говорят -10945435 ))))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 13:30:01 |
|
||
|
Как правильно работать с денежным типом и в него преобразовывать!!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
ROUND(<nExpression>, <nDecimalPlaces>) где <nExpression> -- твое число которое нужно округлить <nDecimalPlaces> количество знаков после запятой, до которого округляется ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 13:40:46 |
|
||
|
Как правильно работать с денежным типом и в него преобразовывать!!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
Maltsev MaxROUND(<nExpression>, <nDecimalPlaces>) где <nExpression> -- твое число которое нужно округлить <nDecimalPlaces> количество знаков после запятой, до которого округляется ... Нет, для решеня этой задачи Round не годиться он округлит до .35 Код: plaintext У меня вопрос к афффтар он же аффтар откуда взялось такое число если считаются деньги, и почему если это результат арифметических операций промежуточные результаты не приводятся к "нормальному" виду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 13:51:15 |
|
||
|
Как правильно работать с денежным типом и в него преобразовывать!!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
В качестве полушутки (зато не рисуются лишние нули в запросах): Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 14:08:34 |
|
||
|
Как правильно работать с денежным типом и в него преобразовывать!!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
сумма по процентам в таблице sum(a*.25)-увеличиваю колво знаков для большей точности а round()- очень плохая фунция в этом плане,когда требуется точность хотелось чтобы значение обрезалось по определенный знак, а не округлялось...... а есть у кого нить идеи как это точность обеспечить..... или где это найти?...... чтобы не изобретать велосипед....??????? или эт невозможно......??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 14:12:29 |
|
||
|
Как правильно работать с денежным типом и в него преобразовывать!!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
интересно однако))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 14:13:22 |
|
||
|
Как правильно работать с денежным типом и в него преобразовывать!!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
int(10945435.3452305*100)/100 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 14:41:12 |
|
||
|
Как правильно работать с денежным типом и в него преобразовывать!!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
int(10945435.3452305*100)*0.01 тынц? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 14:45:43 |
|
||
|
Как правильно работать с денежным типом и в него преобразовывать!!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
это к вопросу о лишних нулях да и запросах быстрее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 14:47:44 |
|
||
|
Как правильно работать с денежным типом и в него преобразовывать!!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
никогда не делите если можно умножить в программировании.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 14:49:07 |
|
||
|
Как правильно работать с денежным типом и в него преобразовывать!!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
аффтархотелось чтобы значение обрезалось по определенный знак, а не округлялось...... а есть у кого нить идеи как это точность обеспечить..... или где это найти?...... чтобы не изобретать велосипед....??????? или эт невозможно......??? Есть такой тип данных - CURRENCY. Он именно обрезает. По 4 знаку после запятой. Причем обрезается результат каждой математической операции. Проблема только в том, что этот тип данных плохо сочетается с типом данных Numeric. Вот тебе пример Код: plaintext 1. 2. Ты хочешь получить не стандартное (с точки зрения FoxPro) округление при математических операциях. Значит, придется выдумывать что-то свое. Проблема в том, что ты рассматриваешь данный конкретный случай: "Вот здесь мне надо отбросить, а не округлить". А надо ли так делать ВЕЗДЕ в твоей программе? Насчет полушутки, можно и так: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 15:09:34 |
|
||
|
Как правильно работать с денежным типом и в него преобразовывать!!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
2 leaf : leafэто к вопросу о лишних нулях да и запросах быстрее Самое смешное - что в Фоксе символьные функции обрабатываются быстрее, чем математические 2 ВладимирМ : Действительно, так лучше, даже элегантнее :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 15:27:20 |
|
||
|
Как правильно работать с денежным типом и в него преобразовывать!!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
Да ради бога всё это мелочи дерзайте ... ?VAL('1.1') && returns 1.10 ?int(1.12*10)*0.1 && returns 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 15:52:42 |
|
||
|
Как правильно работать с денежным типом и в него преобразовывать!!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
Как я понял, не хочешь писать длинные функции в запросе. Тогда вынеси обработку числа в пользовательскую функцию и в запросе и юзай ее в запросе ... Кстати, как это отразится на скорости ?!? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2005, 09:18:08 |
|
||
|
Как правильно работать с денежным типом и в него преобразовывать!!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
Hi Maltsev Max! > Тогда вынеси обработку числа в пользовательскую функцию и в запросе и юзай > ее в запросе ... > Кстати, как это отразится на скорости ?!? Очень плохо. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2005, 00:48:46 |
|
||
|
Как правильно работать с денежным типом и в него преобразовывать!!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
ребята как войти в режим редактирования таблицы, когда коды видно, Возникла следующая проблема: под Fоx Pro написана база данных, отчет которой выходит Excel в определенной форме (документы стандарта бухгалтерии) и вот, надо сделать так чтобы формат данных выврдимых в ячейки был дробным пример: 0,00/20,15 а выдает 0 / 20 округление не нужно и где это можно исправить? заранее благодарна откликнувшимся :) mice_r@74.ru mice@gmx.co.uk НЕЗНАЮЩая ФОКСПРО ДАМА ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2005, 13:57:38 |
|
||
|
Как правильно работать с денежным типом и в него преобразовывать!!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
2Daisy_ После вывода в эксель задай соотвествующим колонкам нужный формат с запятыми: oExcellApp.columns("O").NumberFormat = "0.00" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2005, 22:14:03 |
|
||
|
Как правильно работать с денежным типом и в него преобразовывать!!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
ВладимирМ Насчет полушутки, можно и так: Код: plaintext 1. 2. Пользуюсь таким способом: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2005, 22:48:43 |
|
||
|
Как правильно работать с денежным типом и в него преобразовывать!!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
2Sergey Ch авторПользуюсь таким способом: ? val(str(123.456,16,2)) Хотя в принципе - одно и тоже... а почему не ?round(123.456,2) ведь в принципе одно и то же.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2005, 09:41:44 |
|
||
|
Как правильно работать с денежным типом и в него преобразовывать!!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
Интересно, что Код: plaintext 1. 2. 3. Возвращают один и тот же результат А если поставить Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2005, 11:14:09 |
|
||
|
Как правильно работать с денежным типом и в него преобразовывать!!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
leaf 2Sergey Ch авторПользуюсь таким способом: ? val(str(123.456,16,2)) Хотя в принципе - одно и тоже... а почему не ?round(123.456,2) ведь в принципе одно и то же.... К сожалению, нет Как уже упоминал Владимир - у денежного формата есть проблема - FoxPro все старается преобразовать к нему то есть точность 4 знака после запятой. Во многих случаях нам нужна большая точность, непример при вычислении НДС (VAT) необходима точность 10-12 знаков после запятой, чтобы получать правильные и красивые денежные выражения при разбивки транзакций, например при оплате пластиковыми картами - приходит сумма одна, а надо ее дробить - часть на налог, часть в оплату товара... Причем сама сумма к оплате не всегда целая... Думаю, что Вы мысль поняли... Если делать все эти операции непосредственно с полями таблиц - то вылезают неправильная дробная часть при округлении по причине указанной выше. Если все делать "абстрактно", то все нормально ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2005, 12:10:41 |
|
||
|
Как правильно работать с денежным типом и в него преобразовывать!!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
Sergey Ch ВладимирМ Насчет полушутки, можно и так: Код: plaintext 1. 2. Пользуюсь таким способом: Код: plaintext Так ведь - не одно и тоже! ? val(str(123.456,16,2)) - просто напросто округляет до второго знака. Обрезает же до второго знака либо: ?VAL(LEFT(STR(10945435.3452305,12,3),11)) либо то, что предложил взамен ВладимирМ. И уж тем более не round(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2005, 12:46:15 |
|
||
|
Как правильно работать с денежным типом и в него преобразовывать!!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
Hi Sergey! Задачи "распределения" суммы на части не решается через ROUND() и тем более "простым делением". Ибо если 10/3 а потом снова сложить - то как ни округляй, а копейка потеряется. А чтоб не терялась - нужен особый алгоритм распределения. он уж знает куда копейку эту добавить, или откуда отнять... Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2005, 01:03:40 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33280354&tid=1593427]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
186ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 491ms |

| 0 / 0 |
