程序的有关问题 菜鸟 多谢

程序的问题 初学者 谢谢
//2进制转十进制
#include   <iostream>
#include   <cmath>
using   namespace   std;
void   binToDec(int   bonaryNumber,int&decimal,int   &weight);
int   main()
{
        int   decimalNum;
        int   bitWeight;
        int   binaryNum;
       
        decimalNum=0;
        bitWeight=0;
        cout < < "Enter   number   in   binary: ";
        cin> > binaryNum;
        cout < <endl;
        binToDec(binaryNum,decimalNum,bitWeight);
        cout < < "Binary " < <binaryNum < < "= " < <decimalNum
        < < "decimal " < <endl;
        return   0;
}

void   binToDec(int   binaryNumber,int   &decimal,int&weight)
{
        int   bit;
        if   (binaryNumber> 0)
        {
                bit=binaryNumber%10;
                decimal=decimal+bit*static_cast <int> (pow(2,weight));
                binaryNumber=binaryNumber/10;
                weight++;
                binToDec(binaryNumber,decimal,weight);
               
                }
       
       
}


------解决方案--------------------
decimal=decimal+bit*static_cast <int> (pow((double)2,weight));

把2强制转换成double或者float都行