将一个整数除以一个双精度数
Dividing an integer with a double
我有一个非常简单的问题。
std::cout << std::setprecision(2);
for (int i = 3; i > 0; i--) {
std::cout << i / 3.0 << " ";
}
以上代码给出了输出:
1 0.67 0.33
为什么 i = 3
return 是整数,而 i = 2
和 i = 1
return 是双数?精度设置为 2
而我们除以双精度,所以我很困惑。
setprecision(n);
表示要使用的最大数字 n
,而不是最小数字。请记住,尾随零会被自动丢弃,当您将 3 除以 3.0 时会发生这种情况,结果为 1.000...但零会被丢弃。如果您想始终获得 n
数字,则必须像这样使用 std::fixed
:
cout << fixed;
cout << setprecision(2);
它会给你 2 个数字,所以例如 3 / 3.0
会产生 1.00
。
我有一个非常简单的问题。
std::cout << std::setprecision(2);
for (int i = 3; i > 0; i--) {
std::cout << i / 3.0 << " ";
}
以上代码给出了输出:
1 0.67 0.33
为什么 i = 3
return 是整数,而 i = 2
和 i = 1
return 是双数?精度设置为 2
而我们除以双精度,所以我很困惑。
setprecision(n);
表示要使用的最大数字 n
,而不是最小数字。请记住,尾随零会被自动丢弃,当您将 3 除以 3.0 时会发生这种情况,结果为 1.000...但零会被丢弃。如果您想始终获得 n
数字,则必须像这样使用 std::fixed
:
cout << fixed;
cout << setprecision(2);
它会给你 2 个数字,所以例如 3 / 3.0
会产生 1.00
。