用C#怎么判定一个数是整数还是小数?

我的方法是把一个变量定义成float,如下:
float a;
if (a - (int)a != 0); ///这样可以确定是小数;
方法2:
float a;
if (a % 1 != 0); ///这样也行;

可是这些方法都不能判定诸如1.0 2.0 之类的小数,请问各位高手有什么好办法....

你说的应该跟程序的界面设计有关吧,你可以这样做。不过沙发说的有道理,的确没有什么意义,取值的确都一样的。我的思路是转化为字符串然后判断:
float a;

......//运算对a赋值

string str_a=Convert.ToString(a);
int dot=str_a.IndexOf(".");
string substr=a.Substring(dot+1);
bool hasnotzerochar=false;//记录是否小数点后存在不为0的字符
for (i=0;i<substr.Length();i++)
{
if (substr[i]!="0")
{
hasnotzerochar=true;
}
}
这样,你只需要判断hasnotzerochar是否为true就可以知道了?对不对?

博客欢迎访问:http://www.mygao.net
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-03-04
你说的应该跟程序的界面设计有关吧,你可以这样做。不过沙发说的有道理,的确没有什么意义,取值的确都一样的。我的思路是转化为字符串然后判断:
float
a;
......//运算对a赋值
string
str_a=Convert.ToString(a);
int
dot=str_a.IndexOf(".");
string
substr=a.Substring(dot+1);
bool
hasnotzerochar=false;//记录是否小数点后存在不为0的字符
for
(i=0;i<substr.Length();i++)
{
if
(substr[i]!="0")
{
hasnotzerochar=true;
}
}
这样,你只需要判断hasnotzerochar是否为true就可以知道了?对不对?
博客欢迎访问:http://www.mygao.net
第2个回答  2006-09-12
你是穷极无聊了想这种问题吧

你定义float a;就已经把数设为小数了
即使你存储的时候 把a设为整数5或者5.0
出来的时候也都是5.0

没什么差别了
第3个回答  2006-09-12
这没法判定,因为对于计算机来说它是一样的。
第4个回答  2006-09-12
这个问题无法解决。。
相似回答