【发布时间】:2016-05-16 16:39:09
【问题描述】:
我是编程语言的初学者。所以我面临一些问题。请帮帮我。 是否可以使用 C 中的“scanf”输入小数点后 2 位的浮点数或双精度数??
【问题讨论】:
-
欢迎来到 StackOverflow。分享一些你当前的代码可以帮助你从这个网站获得帮助。
我是编程语言的初学者。所以我面临一些问题。请帮帮我。 是否可以使用 C 中的“scanf”输入小数点后 2 位的浮点数或双精度数??
【问题讨论】:
请看这里:How to only accept a certain precision (so many decimals places) in scanf?
float value;
scanf("%4f", &value);
并不是真的这样做,而是读取 4 位 edit: 4 characters 浮点数。您可以设置其他数字而不是 4。
如果您真的只需要 2 位小数,您可以使用 scanf 读取数字,然后使用 roundf 进行循环。
#include <math.h>
...
float value;
scanf("%f", &value);
value = roundf(value*100)/100
【讨论】:
round(value*100.0)/100 (round() 100.0) 通常可以避免范围和精度问题。
您可以使用
读取浮点数float a;
scanf("%f", &a);
你可以阅读双打
double a;
scanf("%lf", &a);
【讨论】: