【发布时间】:2014-09-19 02:09:52
【问题描述】:
我无法将 GPA 双精度数舍入到小数点后 2 位。 (例如需要四舍五入的 GPA:3.67924)我目前正在使用 ceil 进行四舍五入,但它目前将其输出为整数 (368)
这是我现在拥有的
if (cin >> gpa) {
if (gpa >= 0 && gpa <= 5) {
// valid number
gpa = ceil(gpa * 100);
break;
} else {
cout << "Please enter a valid GPA (0.00 - 5.00)" << endl;
cout << "GPA: ";
}
}
将上面的代码与 3.67924 一起使用将输出 368(这是我想要的,但只是没有整数和小数之间的句点)。我该如何解决这个问题?
【问题讨论】:
-
乘以 100 并四舍五入后,再除以 100。或者,如果您只需要 打印 保留两位小数,则保持值不变并使用 @987654321 @ 打印时。
-
标题提到了四舍五入,但问题陈述提到了四舍五入。可以使用 gpa = floor((100.*gpa)+.5)/100 实现舍入。
-
would output 368 (which is what I want, but just without the period between the whole number and the decimals). How can I fix this?你会这样做gpa /= 100假设gpa是double。