c++ - 在 C++ 帮助中使用 setprecision()

标签 c++ decimal

当我运行程序时,setprecision 会处理所有变量。我试图让变量 secondsinput 成为一个整数。我已经尝试将该变量设置为 int 但这搞砸了数学。有什么想法吗?

using namespace std;

int main()
{
double outputminutes, outputhours, outputdays, secondsinput;

cout << "Please enter the number of seconds: ";
cin >> secondsinput;
cout << endl;

outputminutes = secondsinput / 60;
outputhours = secondsinput / 3600;
outputdays = secondsinput / 86400;

cout << setprecision(2) << fixed;

if (secondsinput > 60 && secondsinput < 3600)
        cout << secondsinput << " seconds is " 
             << outputminutes << " minutes." 
             << endl << endl;

else if (secondsinput > 3600 && secondsinput < 86400)
        cout << secondsinput << " seconds is " 
             << outputhours << " hours." 
             << endl << endl;
else if (secondsinput > 86400)
    cout << secondsinput << " seconds is " 
             << outputdays << " days." 
             << endl << endl;
}

最佳答案

secondsinput 设为 int,因为这是您希望它输入和显示的方式。只需修复数学。例如:

outputminutes = secondsinput / 60.0;
outputhours = secondsinput / 3600.0;
outputdays = secondsinput / 86400.0;

outputminutes = static_cast<double>(secondsinput) / 60;
outputhours = static_cast<double>(secondsinput) / 3600;
outputdays = static_cast<double>(secondsinput) / 86400;

关于c++ - 在 C++ 帮助中使用 setprecision(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19202845/

相关文章:

c++ - 如何检测属性表中的当前事件页面 (C++/VS)

c++ - 存储要删除的 vector 元素

C++ 和 Eclipse 项目 - 如何计算出要包含的 header 以及要转发声明的类

xml - XML 架构 (XSD) 中十进制类型的限制是什么?

c++ - 存在内存泄漏问题的链表

c++ - 模板代码中的默认类型参数错误

c# - 在 C# 中不可能在开关中使用小数范围吗?

boost 多精度 cpp_dec_float 仅与所需精度进行比较

ruby - 如何在使用 each_char 时跟踪迭代次数?

Python - 十进制到整数低字节然后高字节