对不起,这让我困惑了几个小时,谷歌没有任何关于此事的消息。我在C编程,尝试将十进制转换为二进制,我很困惑为什么这一直给我输入正确的数量,但整数值始终为0.
即使我正确地将输入转换为int,它也不起作用(即:int integer =(int)input;
main() {
double input;
scanf("%d", &input);
printf("input: %d \n", input); // this will print fine
int integer = input; // stores nums before decimal
printf("integer:%i\n", integer); // this always prints 0
答案 0 :(得分:2)
因为您使用了错误的说明符来阅读 - > scanf()
或打印 - > printf()
double
,执行此操作
if (scanf("%lf", &input) == 1)
{
printf("input: %f\n", input);
printf("integer: %d\n", (int) input);
}
答案 1 :(得分:1)
您需要更正格式说明符。
main(){
double input;
scanf("%lf",&input);
printf("input: %lf \n", input);
int integer = input;
printf("integer:%i\n", integer); }
或者您可以阅读here