在momemt,我正在学习C和语言的基础知识,但我的代码有问题。当我乘以两个数字时,我无法得到小数,即使我浮动我输入的数字。
我的代码:
int main()
{
double result_met, km;
result_met = km = 0.0f;
/*Display text*/
printf("Enter values of the distance between the two cities in km's\n");
scanf_s("%d", &km);
/*Formular for a simple km conversion*/
result_met = km * 1000.0f;
/*Result print*/
printf("Meter:%d", result_met);
printf("\nWaiting for a character to be pressed from the keyboard to exit.\n");
getch();
return 0;
}
答案 0 :(得分:2)
格式说明符不正确 - %lf
- %d
适用于int
。
scanf_s("%lf", &km);
/*Formular for a simple km conversion*/
result_met = km * 1000.0f;
/*Result print*/
printf("Meter:%lf", result_met);
答案 1 :(得分:1)
double的格式说明符是%lf
,而不是%d
您也可以使用float
而不是double
,它可以节省内存(这在您开始编写大型程序时非常重要),然后您必须使用格式说明符%f
( %lf
中的“l”表示“长”,因为double
是long float
)
当处理小数时,你想在屏幕上只打印几个小数(以避免打印“2.50000001”),那么你可以使用格式说明符%.3f
如果你想要3和只有3位数打印(3
可以是任何整数)。
例如,以下代码:
printf("%.2f\n",3.1415);
具有以下输出:
3.14
printf
函数有许多不同的格式说明符,非常有用。
如果您想了解更多信息,请查看cpluplus.com reference