函数中的添加不正确

问题描述 投票:0回答:1

我正在用C ++编写一个函数来将一个数字从一些基数转换为十进制数。当位数是偶数时它工作正常,但是当它是奇数时它会给出错误的答案。

例如:

Number to convert : 100 
Base to convert to: 10
Correct answer    : 100
Function's output : 99

这是代码:

unsigned long long convertToDecimal(const std::string& number, const unsigned base)
{
       std::string characters = "0123456789abcdef";
       unsigned long long res = 0;

       for(int i = 0, len = number.size(); i<len; ++i)
       {
           res += characters.find(number.at(i))*std::pow(base, len-1-i);
       }
       return res;
}

我正在使用g ++ C ++ 11。

c++ c++11
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.