double d = 3.14159; float f = static_cast<float>(d); std::cout << std::fixed << std::setprecision(2) << f << std::endl;
时间: 2024-04-23 16:24:05 浏览: 65
输出结果为 3.14。在这个例子中,我们先将 double 类型的变量 d 转换为 float 类型的变量 f,然后使用 std::fixed 和 std::setprecision(2) 控制输出的格式和精度,保留小数点后两位有效数字,输出结果为 3.14。需要注意的是,转换过程中可能会发生精度丢失,因此需要谨慎处理。
相关问题
double d = 3.14159; float f = static_cast<float>(d); std::cout << std::fixed << std::setprecision(4) << f << std::endl;
输出结果为 3.1416。在这个例子中,我们先将 double 类型的变量 d 转换为 float 类型的变量 f,然后使用 std::fixed 和 std::setprecision(4) 控制输出的格式和精度,保留小数点后四位有效数字,输出结果为 3.1416。需要注意的是,转换过程中可能会发生精度丢失,因此需要谨慎处理。
double a = 1683422701.390222;float b = static_cast<float>(a);std::cout <<std::fixed << std::setprecision(6)<< b << std::endl;
输出结果为 1683422720.000000。在这个例子中,我们使用了 static_cast 运算符将 double 类型的变量 a 转换为 float 类型的变量 b。由于 float 类型的精度只有 23 位有效数字,因此在转换时发生了精度丢失,但是通过 std::fixed 和 std::setprecision(6) 控制输出的精度,可以保留小数点后 6 位有效数字。
阅读全文