C++的set容器中为什么会存在相同的元素呢?

在写代码的时候,发现创建的set s,中添加的数据存在相同的元素,被添加到set中。代码如下:

#include <bits/stdc++.h>
using namespace std;
int main()
    {
        set<double> s;
        for(int i=0;i<=5;i++)
            for(int j=0;j<=4;j++)
                for(int k=0;k<=6;k++)
                    {

                        double money = i*0.8+j*1.0+k*1.8;
                        s.insert(money);
                    }
        for(set<double>::iterator it=s.begin();it!=s.end();it++)
            cout<<*it<<' ';
        cout<<endl;
        cout<<s.count(11.2)<<" "<<s.count(7.6)<<endl;
        //cout<<s.size()-1<<endl;
        return 0;
    } 

double存在精度误差,所以看似相同的两个数字,只要有点不同,就被当作不同。
建议你将小数点平移一位,用整数代替运算,输出的时候除以10