RSS RSS
Добавлено: 2005-11-17 10:46:33   Возможно ли ...


Зарегистрирован(а): 01.01.1970

Сообщений: 3 (просмотреть)
... получить результат в дробном представлении и сколько значащих цифр после запятой можно получить?

Ответить | Цитировать
Добавлено: 2005-11-18 21:38:33
Raul

Зарегистрирован(а): 17.03.2010

Сообщений: 101 (просмотреть)
Сколько потребуется, столько и можно получить улыбка. Арифметика с фиксированной точкой отличается от целочисленной тем, что надо проводить нормализацию при умножении и делении (путем сдвига). Это можно запрограммировать как надстройку над классом.

Ответить | Цитировать
Добавлено: 2006-05-18 13:51:02


Зарегистрирован(а): 01.01.1970

Сообщений: 3 (просмотреть)
Я понял, что класс работает только с целыми числами. Работает ли класс с дробными числами?

Ответить | Цитировать
Добавлено: 2006-05-22 16:56:53
Raul

Зарегистрирован(а): 17.03.2010

Сообщений: 101 (просмотреть)
Напрямую не работает.

Ответить | Цитировать
Добавлено: 2007-10-25 00:27:27


Зарегистрирован(а): 01.01.1970

Сообщений: 3 (просмотреть)
Хотелось бы узнать каким образом можно работать с дробными числами. Если возможно то с примерами.

Ответить | Цитировать
Добавлено: 2007-10-25 15:45:40
Raul

Зарегистрирован(а): 17.03.2010

Сообщений: 101 (просмотреть)
Например, требуется перемножить числа с тремя десятичными цифрами после точки.
cBigNumber a=cBigNumber ("123000", 10); // 123.000
cBigNumber b=cBigNumber ("456789", 10); // 456.789
c = a * b / 1000; // 123.000 * 456.789
cout << (c / 1000) << '.' << (c % 1000);
d = (c * 1000) / b; // 123.000
cout << (d / 1000) << '.' << (d % 1000);
При сложении и вычитании коррекция на 1000 не потребуется.

Ответить | Цитировать