Форум вопросов и ответов

Форум вопросов и ответов (https://www.otvetnemail.ru/)
-   Продолжение старого архива (https://www.otvetnemail.ru/prodolzhenie-starogo-arhiva-804/)
-   -   Перевод текста из любой системы исчислений в десятичную (https://www.otvetnemail.ru/prodolzhenie-starogo-arhiva-804/perevod-teksta-iz-lyuboj-sistemy-ischislenij-v-desyatichnuyu-364873/)

Guest 01.10.2011 02:59

Перевод текста из любой системы исчислений в десятичную
 
Написал небольшую прогу-калькулятор, переводит из любой системы исчисления в любую (от 2- до 36-ричной). Пока все работало в режиме Отладки ошибок не было, перевел в режим Релиз - программа ошибается на сложении двух целых чисел и ошибается на единицу. Вот участок кода, который ошибается:КодC++ (Qt)#include "qmath.h"...QString numeral = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";Q String t = "883";int v = 10;int decValue = 0;int len = t.length();for (int j = 0; j < len; j++){ decValue += numeral.indexOf(t.right(1)) * pow(v, j); t.chop(1);}В каждом цикле число считается верно: сначала 3, потом 80, потом 800, но все это дело складывается в 882. В чем загвоздка? Грешу конечно на pow(), все-таки она вся на double работает, но число то все равно ничего не имеет после запятой кроме нулей, откуда же такая колоссальная погрешность, и почему она проявляется именно в Релиз версии...


Часовой пояс GMT, время: 20:37.


© www.otvetnemail.ru - Форум вопросов и ответов.