double a = 1683422701.390222;float b = static_cast<float>(a);std::cout <<std::fixed << std::setprecision(6)<< b << std::endl;
时间: 2023-10-30 16:54:36 浏览: 67
计算机精度问题(Double)
输出结果为 1683422720.000000。在这个例子中,我们使用了 static_cast 运算符将 double 类型的变量 a 转换为 float 类型的变量 b。由于 float 类型的精度只有 23 位有效数字,因此在转换时发生了精度丢失,但是通过 std::fixed 和 std::setprecision(6) 控制输出的精度,可以保留小数点后 6 位有效数字。
阅读全文