如何解决使用sscanf将字符串转换为float会在C语言中产生稍微不同的结果
我将数字字符串作为用户的输入,而不是借助sscanf()
函数将其转换为float:
#include<stdio.h>
float getfloat(void);
int main()
{
float a;
a=getfloat();
printf("You entered %f\n",a);
return 0;
}
float getfloat(void)
{
float n;
char nstr[50];
printf("Enter a numeric string\n");
gets(nstr);
sscanf(nstr,"%f",&n);
return n;
}
现在,让我们输入一个字符串100.1234
。当我在打印浮点值时借助sscanf
转换为浮点数后,得到100.123398
作为存储值。现在,这些值非常接近,但是为什么我得到的结果与输入的结果不一样。 sscanf
内部发生了什么?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。