我试图将浮动值转换为C中的int。我使用print语句来查看发生了什么并确保我获得了所需的结果,但是某些东西不能正常工作。这是我的代码:
#include <stdio.h>
#include <cs50.h>
#include <math.h>
int main(void){
float changeOwed = -1.00;
while(changeOwed < 0.00){
printf("How much change is owed?\n");
changeOwed = GetFloat();
}
printf("%f\n", changeOwed);
int centsOwed = roundf(changeOwed*100);
printf("%o\n", centsOwed);
如果用户输入是,假设为0.49,这是输出:
0.490000
61
我不明白为什么演员结果是61.我认为正常的错误是0,48或50的结果,但我不会得到这个奇怪的结果而且不能弄清楚它的逻辑。
答案 0 :(得分:3)
如果你还没有得到它......
“061”是“49”的八进制。
如果要查看小数“49”,请使用printf(“%d”)代替“%o”。
以下是“printf”格式选项的良好列表: