为什么此C 静态铸造代码产生而不是双重

why does this c++ static cast code produce and int not a double

本文关键字:代码 静态 为什么      更新时间:2023-10-16

我是C 的新手,我不确定为什么此代码的输出为8而不是8.25?

有人可以解释为什么此代码输出INT而不是双重?

谢谢:)

#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;
}

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

a static_cast通过转换为 int扔掉后无法恢复丢失的" .25"。