Возможно ли ...
|
Добавлено: 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 не потребуется.
|
Ответить
| Цитировать
|