Algorithm 小于给定值的最近整数
以更好的方式解释我的问题 我想知道小于给定值的最近整数。 现在这个值是双重类型的…所以有两种情况 如果值包含小数部分,即如果值为6.8,则答案为6 如果值已经是整数,那么答案应该比值6小一,那么答案应该是5 现在仅仅发言不适用于第二个案件 所以我尝试了这个ceilvalue-1,但在这里我再次遇到了一个问题,当值为0.3时,它应该输出0,但它输出的是-0负零。Algorithm 小于给定值的最近整数,algorithm,math,Algorithm,Math,以更好的方式解释我的问题 我想知道小于给定值的最近整数。 现在这个值是双重类型的…所以有两种情况 如果值包含小数部分,即如果值为6.8,则答案为6 如果值已经是整数,那么答案应该比值6小一,那么答案应该是5 现在仅仅发言不适用于第二个案件 所以我尝试了这个ceilvalue-1,但在这里我再次遇到了一个问题,当值为0.3时,它应该输出0,但它输出的是-0负零。 那么实现这一点的最佳方法是什么呢?如评论中所述,您可以看到如何检查数字是否为整数,并执行适当的操作: 但是,如果您想要更有趣的方式,无需
那么实现这一点的最佳方法是什么呢?如评论中所述,您可以看到如何检查数字是否为整数,并执行适当的操作: 但是,如果您想要更有趣的方式,无需任何条件:
float a;
float result;
cin >> a;
result = std::floor(a) - !std::ceil(a - std::floor(a)); // ceil(a - 1) <--- As told in @Naman comment, it's a better way.
cout << result << endl;
向我们展示您的代码,我们可以提供帮助。“我们不能从头开始为你写。”尼科普我已经解释了我的问题,你不明白。邮政编码和我们的帮助。我们不会根据您的规格编写新程序。负零到底有什么问题?负零和零毕竟是同一个值,所以你需要检查浮点值是否包含一个整数值,然后你截断它,如果它是整数值,你就把它减少一。副本将告诉您如何检查浮点是否表示整数值。ceilvalue-1…这也可以,不是吗??但唯一出现的问题是-0@Naman嗯,是的,甚至更好。