对1到100000求和结果出错的问题

在求1到100000之和的过程中 使用for循环

#include <iostream>                                //预编    译命令
#include <cmath>                                //预编译命令
using namespace std;

int main()                                        //主函数
{
    
    int sum = 0;                                //定义sum为整型变量,并初始化为0
    for (int i = 0.0; i < 100000; i = i + 1)    //for循环
    {                                            //循环体开始
        sum = sum + (i + 1);                    //累加求和
    }                                            //循环体结束

    cout << "自然数1~100000之和为" << sum << endl;

        

    return 0;
}                                                //主函数结束

结果算出来是705049936
想知道为什么会出现这样的情况 以及如何解决
谢谢大家

int sum改为long long sum吧,因为和值超出了int的存储范围

#include <iostream>                                //预编    译命令
#include <cmath>                                //预编译命令
using namespace std;
 
int main()                                        //主函数
{
    
    long long  sum = 0;                                //定义sum为整型变量,并初始化为0
    for (int  i = 0; i < 100000; i = i + 1)    //for循环
    {                                            //循环体开始
        sum = sum + (i + 1);                    //累加求和
    }                                            //循环体结束
 
    cout << "自然数1~100000之和为" << sum << endl;
 
        
    return 0;
}                                                //主函数结束
 

int 存不下