C++ c+中的意外输出+;代码,未获得预期结果

C++ c+中的意外输出+;代码,未获得预期结果,c++,C++,我制作这个程序是为了显示时钟中所有可能的时间,如果在小时和分针之间给定一个角度 #include <iostream> #include <fstream> #include <string> #include <vector> #include <math.h> using namespace std; int main(){ //ifstream cin("input.txt"); vector <floa

我制作这个程序是为了显示时钟中所有可能的时间,如果在小时和分针之间给定一个角度

#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <math.h>
using namespace std;

int main(){

    //ifstream cin("input.txt");
    vector <float> hour , min , angle;
    string str;
    int h , m ;

    float diff, cal1 ,cal2 ,  i , j;;
    h = 11 ;
    m = 59;
    for ( i = 0 ; i <= h ; i++ ){
        for ( j = 0 ; j <= m ; j = j + 1){
            cal1 = (i*60/2) + (j/2); // hour angle
            cal2 = (j*6); // min angle;
            diff = fabs(cal1 - cal2) ;
            if ( diff > 180 ){
                diff = 360.0000 - diff ;
            }
            //cout << cal1 << " " << cal2 << " " << diff << endl;

            hour.push_back(i);
            min.push_back(int(j));
            angle.push_back(diff);
        }
    }

    int t , value , size;
    cin >> t;
    size = hour.size();
    while( t-- ){
        cin >> value;

        for ( int i = 0 ; i < size;i++ ){
            //cout << angle[i] << endl;
            if ( value == angle[i] ){
                if ( hour[i] > 9 && min[i] > 9 ){
                    cout << hour[i] <<":" << min[i] << endl;
                }
                else if ( hour[i] <= 9 && min[i] > 9 ){
                    cout << "0" << hour[i] <<":" << min[i] << endl;
                }
                else if ( hour[i] > 9 && min[i] <= 9 ){
                    cout << hour[i] <<":" << "0" << min[i] << endl;
                }
                else {
                    cout << "0" << hour[i] <<":" << "0" << min[i] << endl;
                }
            }
        }
    }
}
我得到

   02:00
   10:00
   00:00
    01:00
    11:00
    00.00
但我应该得到这个

    02:00
    10:00
    01:00
    11:00
当我输入这个作为输入时

2
30.0000
60.0000
我得到

   02:00
   10:00
   00:00
    01:00
    11:00
    00.00
当我去掉输入中的零并给它整数时,它会显示正确的答案,但对于浮点数,它会给出错误的答案。
我用ideone运行了这段代码。它给出了同样的问题。

值的数据类型为
int
,但输入要求
float


尝试将
int value
替换为
浮点值

使用
=
比较浮点通常是错误的,因为浮点不准确。考虑在小范围内检查值。@牧马人谢谢。我想我的眼睛不见了。。。