Форум программистов, компьютерный форум, киберфорум
Наши страницы
Lotus Notes/Domino: Программирование
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.54/103: Рейтинг темы: голосов - 103, средняя оценка - 4.54
myskProstomysk
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
1

Деление

12.02.2009, 09:50. Просмотров 18624. Ответов 12
Метки нет (Все метки)

Всем привет!
Нужна помошь по математике :wacko:
Нужно делить дробные числа. Максимальное число деления - 10
Для начала делить на равные части. С точностью до 2-х знаков. но потом при изменении любого элемента массива должно влечь за собой изменение следующих за ним.

Я пытаюсь сделать расчет в долях.
Например 51.65 (s) на разделить на 7 (n). Исходное значение беру за единицу и получаю массив ( mas(i) ) где каждый элеменит до n-1 равен 0.14, а n-тый равен s - (сумма mas(i) от 1 до n-1). Ну а в итоге каждый элемент mas(i) * s с округлением до 2-х знаков

Но все ничего если бы не надо было округлять полученый результат :(
Сумма делений не сходится с исходной. Для разных чисел погрешность разная

Помогите плиз. как правильно считать?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2009, 09:50
Ответы с готовыми решениями:

Задача про деление яблок (целочисленное деление)
Ребят,помогите с задачкой,как написать input.txt и output.txt? Помогите решить задачу. C++....

Умножение, деление и деление с остатком
Рассмотрим эти операции на примере. static void Main() { int i = 100, j = 15; double a =...

Деление знаковых чисел с выводом ошибки "Деление на ноль"
Собственно поставили передо мной задачу - написать прогу деления двух чисел, причем что бы...

Деление
data SEGMENT a DW 20 b DW 6 c DW ? data ENDS code SEGMENT assume cs:code,ds:data...

Деление на 0
Все говорят на 0 делить нельзя,но я поделил,в чем тут подвох #include <iostream> using...

12
Mydyvys
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
12.02.2009, 10:04 2
Лично я мало что понял. И совсем не понял зачем это. :wacko:
0
K-Fyry
0 / 0 / 0
Регистрация: 15.12.2006
Сообщений: 641
12.02.2009, 10:09 3
Хранить в полях (или в переменных) числа без округления, сумма будет считаться нормально. А отображать пользователям в округленном виде до 2х знаков.
0
Murtos
0 / 0 / 0
Регистрация: 27.03.2006
Сообщений: 122
12.02.2009, 10:32 4
NickProstoNick я тоже особо не понял задачку, но точно знаю что функция округления лотуса НЕ ПРАВИЛЬНО работает - точнее по своим правилам, поэтому могу предложить для округление вот такое к примеру:


Код
Function RSRound(number As Double, places As Integer) As Double

Dim factor As Double
factor = 10 ^ places
RSRound = Sgn(number) * Fix( Abs(number) * factor + 0.5) / factor

End Function
0
12.02.2009, 10:32
myskProstomysk
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
12.02.2009, 10:41 5
K-Fire
Всю математику делаю с массивами. Поля толко для отображения и ввода данных
0
Omh
0 / 0 / 1
Регистрация: 30.06.2007
Сообщений: 2,153
12.02.2009, 10:43 6
Видов округлений целая пачка.
Лотус использует округление, где 5-ка округляется в большую или меньшую сторону в зависимости от её позиции после запятой (чётная/нечётная).
Кстати, раньше учили округлять именно так (читал книжку по математике 60-ых годов), а в современной школе 5-ка почему то всегда округляется в бОльшую сторону, что при большом кол-ве округляемых чисел даст бОльшую погрешность, чем лотусное округление.
А NickProstoNick, судя по всему, делает разбивку полной суммы на несколько, скажем так, товаров :wacko:
0
myskProstomysk
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
12.02.2009, 10:47 7
Murtas
Ну а задача проста. Поделить одно число на другое. И показать пользователю что сумма частей равна исходному значению. И пользователь должен видеть значения с точностью до 2-х знаков. Грубо говоря у меня не получается правильно светить результат всей математики

Omh
Именно это и пытаюсь сделать :wacko:
0
Omh
0 / 0 / 1
Регистрация: 30.06.2007
Сообщений: 2,153
12.02.2009, 10:52 8
Тогда поздравляю :wacko:
Если там потом ещё придётся вычитать налог от полной суммы и потом, например, показать налог на каждый товар, то вообще радости начнутся :(

Задача, кстати, несмотря на кажущуюся простоту, не такая уж и тривиальная.
Я на прошлой работе так и не дожал её реализацию: наколько мне известно, время от времени в инвойсах до сих пор лишняя копейка вылазит
0
myskProstomysk
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
12.02.2009, 11:08 9
Omh
У тебя есть пистолет? :wacko:

Налоги, слава яйцам, считать не надо... пока... но эта лишняя копейка....
0
Omh
0 / 0 / 1
Регистрация: 30.06.2007
Сообщений: 2,153
12.02.2009, 11:31 10
Ну пока я что вижу в твоей задаче?

Берём сумму 51,65 (s).
Делим на кол-во товаров (7).
Получаем цену товара неокруглённую: 7,37857...
Берём цену товара с точностью как нам надо без всяких округлений (допустим, 2 знака): 7,37

Считаем остаток: 51,65 - 7,37*7 = 6
Остаётся 6 копеек.
Раскидываем эти копейки по товарам.
Итого 6 товаров будут стоить 7,38 и один - 7,37

А что делать :wacko:
0
tmyky
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
12.02.2009, 15:18 11
значала была теория ...
дык вот в большинстве своем Нотуся оперирует числами в "плавающем" формате - что есть зло
существует тип каренси - отличающийся точностью
но из-за округления мы получим разницу - по-любому
обычно - считают с округлением и без... и разницу приплюсовывают к какому-либо элементу массива (отнесение на конец/начало периода - ежели про бухгалтерию)
в случ. с товарами можно разносить, но не всегда это вариант
0
myskProstomysk
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
12.02.2009, 16:33 12
ну это собственно и предлагалось выше
0
somstomtym o shyrvomymko
0 / 0 / 0
Регистрация: 26.05.2006
Сообщений: 1,313
14.02.2009, 03:41 13
Цитата Сообщение от lmike
дык вот в большинстве своем Нотуся оперирует числами в "плавающем" формате - что есть зло
существует тип каренси - отличающийся точностью
Currency отличается в 1-ю очередь не точностью, а арифметикой с фиксированной запятой AFAIR. Точность же может зависеть от платформы (возможно, конечно, что движок реализует ВСЮ арифметику программно.. но сомнительно). На Интелях currency реализована через 10-байтовую BCD, что точнее integer*4 и REAL*8 (часто). А на mainfreim-ах к примеру плавающая арифметика м.б. и 16-ти байтовая. BCD там тоже есть, но всего лишь 16-ти разрядная (8 байт). Как реализована currency на RISC-ах - х.з...
0
14.02.2009, 03:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.02.2009, 03:41

Деление на 5
Дано число в шестнадцатеричной системе счисления. Число может быть очень большое. Требуется...

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

Деление на 1
Здравствуйте! В программ есть операция которая делит числа на 1, чтобы найти частоту. Так вот,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru