我正在读取几个整数,它们代表年、儒略日、小时和分钟。我正在尝试将它们转换为小数天数。
int YYYY, JJJ, HH, MM;
float datenumber = (YYYY*360.0f)+(JJJ*1.0f)+((HH*1.0f)+(MM/60.0f))/24.0f;
使用 2001, 083, 22, 32
的值,我应该得到 724043.939
的结果。相反,我得到了 724044
。
我将所有整数转换为 float 。为什么它们保持为整数?
编辑 是的,我正在用 cout 显示输出。 setprecision 解决了问题,谢谢。
最佳答案
问题不在于你的数字或你的计算。这只是你展示它的方式。 cout
已确定 6 位数字对您来说足够了。如果您需要更多,请使用 setprecision
。
std::cout << std::setprecision(10) << datenumber;
关于c++ - 为什么我的花车坚持保持整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9438711/