如何确定浮点数的值是否为整数?

Van*_*idi 0 c

我有一个程序,我需要在浮点数的情况下打印FLOAT或在常规数字的情况下打印INTEGER.

示例伪代码

float num = 1.5; 
if (num mod sizeof(int)==0)
  printf ("INTEGER");
else
  printf("FLOAT");
Run Code Online (Sandbox Code Playgroud)

例如:

  • 1.6将打印"FLOAT"
  • 1.0将打印"INTEGER"

这样的事情会起作用吗?

jh3*_*314 5

所有浮点类型都具有相同的大小,因此您的方法将无法正常工作.您可以使用查看浮点数是否为整数ceilf

float num = 1.5; 
if (ceilf(num) == num)
  printf ("INTEGER");
else
  printf("FLOAT");
Run Code Online (Sandbox Code Playgroud)

  • @JasonC:这个答案完全符合问题的要求; 它确定浮点值是否表示整数.所以它完全可靠. (3认同)
  • 谢谢!这是一个很好的技巧. (2认同)