因为float和double都有精度限制,所以判断该类型数据的正负时,不能使用“< 0.0” 或 “> 0.0” 来判断,而是要使用EPISON = 1e-7设置精度边界。
具体代码:
#include<iostream>
using namespace std;
#define EPISON 1e-7
int main() {
double num;
while (cin >> num) {
if (num >= EPISON) {
cout << "正数" << endl;
} else if (num <= -EPISON) {
cout << "负数" << endl;
} else {
cout << "0" << endl;
}
}
return 0;
}
判断double类型数据是否为0时,不能直接用 “== 0.0” 来判断,取而代之的是:
#include<iostream>
using namespace std;
#define EPISON 1e-7
int main() {
double num;
while (cin >> num) {
if (num < EPISON && num > -EPISON)
cout << "0" << endl;
}
return 0;
}