C语言 如何判断一个浮点数是不是整数(说法不太严格)
来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/06/22 23:57:47
C语言 如何判断一个浮点数是不是整数(说法不太严格)
![C语言 如何判断一个浮点数是不是整数(说法不太严格)](/uploads/image/z/4646775-39-5.jpg?t=C%E8%AF%AD%E8%A8%80+%E5%A6%82%E4%BD%95%E5%88%A4%E6%96%AD%E4%B8%80%E4%B8%AA%E6%B5%AE%E7%82%B9%E6%95%B0%E6%98%AF%E4%B8%8D%E6%98%AF%E6%95%B4%E6%95%B0%EF%BC%88%E8%AF%B4%E6%B3%95%E4%B8%8D%E5%A4%AA%E4%B8%A5%E6%A0%BC%EF%BC%89)
C语言里浮点数和整数的操作和表示都不相同,这种说法很不严格,所以如何判断,就看你自己的定义啦.
我的理解是,如果一个浮点数可以分为整数部分和小数部分,那么你想判断一个浮点数是不是跟它的整数部分基本相同,严格一点说就是误差很小.这样的话,你可以这么写:
double err = 1e-10; //先自己定义误差
x = 2.9999999997;
if (abs(int(x)-x)< err) // 和它整数部分误差的绝对值是否小于规定的误差
...
我的理解是,如果一个浮点数可以分为整数部分和小数部分,那么你想判断一个浮点数是不是跟它的整数部分基本相同,严格一点说就是误差很小.这样的话,你可以这么写:
double err = 1e-10; //先自己定义误差
x = 2.9999999997;
if (abs(int(x)-x)< err) // 和它整数部分误差的绝对值是否小于规定的误差
...