我希望我的函数能够将字符串转换为双精度型,但如果我键入例如'22.4',它将输出'22'。我怎样才能得到它输出一个双?(USING fgets)我已经阅读了其他问题,答案说使用sscanf,但有没有办法使用fgets?字符串转换为整数而不是双倍
double getDouble(char message[]){
double val;
double var = 0.0;
char input[80];
do{
printf("%s\n", message);
fgets(input, 80, stdin);
if (input[strlen(input)-1] == '\n'){
input[strlen(input)-1] = '\0';
}
val = atof(input);
if (val != 0.0){
var = 1.0;
}
else{
printf("Error. Please try again.(Only entering numbers is valid)\n");
}
}while(var == 0.0);
printf("The result is: %f\n", val);
return val;
}
尝试'%.1f',而不是'%F'。 – RoadRunner
仍然是相同的结果 –
你想要转换什么字符串? – RoadRunner