scanf – 读取时限制小数位
我知道如何在printf(%xx)中打印值时限制小数和整数。在我的场景中,我想在从控制台读取它时实现它。
那么有什么方法可以在使用scanf函数读取时限制浮点值中的小数位数?
我在下面尝试过,在编译时没有显示任何错误,但总是得到值0
float f1; . . scanf("%.3f",&f1); printf("%3.3f\n",f1);
如果你查看文档,它说
scanf :
scanf的格式说明符遵循以下原型:
%[*][width][length]specifier
并将其与printf进行比较:
格式说明符遵循此原型:
%[flags][width][.precision][length]specifier
您将看到,scanf中没有precision
字段。 所以我想舍入(或转换为int来切割数字)是唯一的方法。
f1 = round( f1 * 1000.0 ) / 1000.0
。 scanf
无法帮助。 顺便说一下,使用double
而不是float
。