我试图执行一个操作,将从用户的直径输入中找到一些披萨片(家庭作业分配),但我的问题是,C++在操作过程中保持四舍五入。这里的如何防止操作中的小数舍入?
//Calculates the number of slices that can be obtained using the diameter from the user's input
sliceNumber = (pi *(pow((pizzaDiameter/ 2.0) , 2.0)))/sliceArea;
//Outputs the number of slices that can be cut, accurate to 1 decimal point using the command "setprecision"
cout << "The number of slices your pizza can be divided into is ";
cout << setprecision(2) << sliceNumber << endl;
最终的结果应该四舍五入至小数点后一位的代码,因为它是被迫与setprecision这是正确的。但是当我用计算器自己解决问题时,结果有点不同。例如,我会在程序中输入直径10,它将输出5.4,即使在真实的计算器上它是5.6。 (切片的#通过找到比萨饼的面积然后通过14.125,其被声明为sliceArea
除以找到)
pi
被声明为3.14的恒定整数,二者sliceNumber
和sliceDiameter
被声明为一倍。 sliceArea
被声明为14.125的整数。
* pi被声明为3.14的常量整数*什么!我从你的问题推断你是初学者。如有必要,请在教程中向前跳至解释整数和浮点数之间差异的页面。或者如果您阅读该页面的速度太快,请跳过。 –
在强类型语言(如C++)中发布一个关于“为什么不提供预期结果”的问题,但在示例代码中不包括类型声明,这意味着问题不清楚。每个变量的确切类型是任何C++代码示例的关键部分。在散文中陈述他们的类型是不够的,因为我们不能确定你的意思是说你的意思,而是真正地说出你的意思。 – DevSolar