我目前正在开发一个程序,旨在将八进制小数作为输入并将其转换为十进制小数。到目前为止,我已经编写了一部分代码,可以将小数点前的部分转换为十进制,但无法将小数点后的浮点数转换。我曾尝试使用模运算,但由于我的变量是浮点型,所以未能成功。
有没有一种方法可以将小数点后的剩余数字从八进制转换为十进制?我在下面发布了我的代码。感谢您的任何帮助!
有没有一种方法可以将小数点后的剩余数字从八进制转换为十进制?我在下面发布了我的代码。感谢您的任何帮助!
int main()
{
float num;
int rem = 0;;
int dec = 0;
int i = 0;
cout << "Please enter a number with a decimal point: ";
cin >> num;
double ohalf = num - (int)num;
int half = num;
while (half != 0)
{
rem = half % 10;
half /= 10; //Converts first have to decimal
dec += rem *= pow(8, i);
i++;
}
cout << dec;
i = -1;
while (ohalf != 0)
{
rem = ohalf *pow(8, i); //Converts second half to decimal. *This is where I am stuck*
i--;
}
cout << rem;
_getch();
return 0;
}
strtol
,适当缩放小数部分,然后将它们加入到“double”中。 - Andrew Henle