scanf-读取时限制小数位数
我知道在printf(%x.x)中打印值时如何限制小数和整数, 在我的场景中,我希望在从控制台读取itslef时实现这一点 那么,在使用scanf函数读取时,有没有办法限制浮点值中的小数数 我在下面尝试过,编译时没有显示任何错误,但始终得到值0scanf-读取时限制小数位数,c,scanf,format-specifiers,C,Scanf,Format Specifiers,我知道在printf(%x.x)中打印值时如何限制小数和整数, 在我的场景中,我希望在从控制台读取itslef时实现这一点 那么,在使用scanf函数读取时,有没有办法限制浮点值中的小数数 我在下面尝试过,编译时没有显示任何错误,但始终得到值0 float f1; . . scanf("%.3f",&f1); printf("%3.3f\n",f1); f1=round(f1*1000.0)/1000.0扫描无法帮助。顺便说一句,使用double代替floatf1=round(f1
float f1;
.
.
scanf("%.3f",&f1);
printf("%3.3f\n",f1);
f1=round(f1*1000.0)/1000.0
<代码>扫描无法帮助。顺便说一句,使用double
代替floatf1=round(f1*1000.0)/1000.0
<代码>扫描
无法帮助。顺便说一句,如果您查看文档,请使用double
而不是float
:
scanf的格式说明符遵循以下原型:
%[*][宽度][长度]说明符
并将其与:
格式说明符遵循此原型:
%[flags][width][.precision][length]说明符
您将看到,scanf中没有精度
字段。所以我想四舍五入(或转换为int来切割数字)是唯一的方法。如果你查看文档,它会说
:
scanf的格式说明符遵循以下原型:
%[*][宽度][长度]说明符
并将其与:
格式说明符遵循此原型:
%[flags][width][.precision][length]说明符
您将看到,scanf中没有精度
字段。因此,我猜四舍五入(或转换为int以切割数字)是唯一的方法。scanf中的[*]和printf中的[flags]是什么意思?它在链接中它在scanf中的[*]和printf中的[flags]是什么意思?它在链接中