如何在c中使用%运算符表示浮点值

Shi*_*kti 12 c math

当我在浮点值上使用%运算符时,我得到错误,指出"二进制%的操作数无效(有'浮'和'双')".我只想输入整数值,但数字非常大(不在范围内) int类型)所以为了避免我使用float的不便.有没有办法在这么大的整数值上使用%运算符????

cyc*_*130 18

您可以使用fmod标准数学库中的函数.它的原型在标准标题中<math.h>.

  • +1 ...但[fmod]的链接(http://pubs.opengroup.org/onlinepubs/9699919799/functions/fmod.html)本来不错:) (3认同)
  • @pmg:这不是我们可以编辑别人帖子的原因吗?:) (2认同)

Mar*_*tos 6

你可能最好使用它long long,它比double大多数系统具有更高的精度.

注意:如果您的数字大于long long可以容纳的数字,那么fmod可能不会按您希望的方式运行.在这种情况下,你最好的选择是bigint库,比如这个库.


Joh*_*ode 5

%操作者只对整数型操作数所定义; 您需要将fmod*库函数用于浮点类型:

#include <math.h>
double fmod(double x, double y);
float fmodf(float x, float y);
long double fmodl(long double x, long double y);  
Run Code Online (Sandbox Code Playgroud)