【发布时间】:2019-05-04 06:50:47
【问题描述】:
我正在构建一个计算器应用程序,用于计算确切的税后净工资。我遇到的问题是程序会自动将值向上舍入。
我尝试使用 setprecision,但它似乎只在用于 cout 或 cin 行时才有效。这需要用户输入,我需要应用 setprecision 的值由程序本身确定。例如,如果我将 setprecision 放在第 42 行,它会更新变量 'federal',编译器会返回一个错误,期望 ';'在它之前。如何在不需要用户输入的情况下设置变量的精度。
为了澄清,用户输入的唯一变量是“小时”和“工资率”。其他变量的交互方式如下例所示。
40 if ((gross >= 0) && (gross < 260))
41 {
42 federal = ((gross - 73) * .1);
43 }
【问题讨论】:
-
请提供更多代码上下文。
-
gross的类型是什么?如果是浮点类型,可以考虑std::round或std::ceil之类的函数。std::setprecision是一个输入/输出操纵器,它不会影响变量的值,而只会影响它的输出方式,例如在std::cout << std::setprecision(100) << gross << '\n';.