如题所述
第1个回答 2013-02-06
假如a是浮点数,再定义一个整型变量int b=a;再定义一个float c=a/b,假如c=1则浮点数a是整数
第2个回答 2014-10-29
#include <math.h>
//a可以是float、double、long double型
if (floor(a) == a)
{
//a是浮点数但里面存的可以看做是整数
}
else
{
//a是浮点数
}
//a可以是float、double、long double型
if (floor(a) == a)
{
//a是浮点数但里面存的可以看做是整数
}
else
{
//a是浮点数
}
第3个回答 2013-02-06
c语言里数字输入输出的时候都有确定它的类型的啊,不用判断的.
如果你指的是那种直接给你的一个数的话,那是不确定的,比如2.0可以确定它是浮点数,但是2就不确定了,,可能是浮点数,也可能是整形的,看你定义的时候是怎么定义的了
如果你指的是那种直接给你的一个数的话,那是不确定的,比如2.0可以确定它是浮点数,但是2就不确定了,,可能是浮点数,也可能是整形的,看你定义的时候是怎么定义的了
第4个回答 2020-04-10
无论是通过sizeof查看字节数(int和float占用字节数相同),还是做float转换为int然后相除判断是否等于1(int转为float可能尾数丢失),或者是sprintf转化为字符串去检查是否有小数点(int会转换为float,导致有小数点出现),都有问题。
以字符读入数,挨个字符判断,检查到有小数点且所有字符在字符‘0’到‘9’之间,且小数点后不超过6位可以判为float,超过为double,没有小数点为int;只长度为1且字符为‘a’到‘z’或‘A'到'Z'为char,长度超过1为字符串。
以字符读入数,挨个字符判断,检查到有小数点且所有字符在字符‘0’到‘9’之间,且小数点后不超过6位可以判为float,超过为double,没有小数点为int;只长度为1且字符为‘a’到‘z’或‘A'到'Z'为char,长度超过1为字符串。