为什么这个c ++静态强制转换代码生成而int不是double

Kan*_*e B 0 c++ static-cast

我是C++的新手,我不知道为什么这段代码的输出是8而不是8.25?

谁能解释为什么这段代码输出的int不是double?

谢谢 :)

#include "stdafx.h"
#include <iostream>


int main()
{

double x = 8.25;
    int y;
    y = x;

    double z = static_cast<double>(y);
    std::cout << z << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)

Mik*_*CAT 5

数据8在语句中转换为整数y = x.

A static_cast通过转换将其丢弃后无法恢复丢失的".25" int.