Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 小于给定值的最近整数_Algorithm_Math - Fatal编程技术网

Algorithm 小于给定值的最近整数

Algorithm 小于给定值的最近整数,algorithm,math,Algorithm,Math,以更好的方式解释我的问题 我想知道小于给定值的最近整数。 现在这个值是双重类型的…所以有两种情况 如果值包含小数部分,即如果值为6.8,则答案为6 如果值已经是整数,那么答案应该比值6小一,那么答案应该是5 现在仅仅发言不适用于第二个案件 所以我尝试了这个ceilvalue-1,但在这里我再次遇到了一个问题,当值为0.3时,它应该输出0,但它输出的是-0负零。 那么实现这一点的最佳方法是什么呢?如评论中所述,您可以看到如何检查数字是否为整数,并执行适当的操作: 但是,如果您想要更有趣的方式,无需

以更好的方式解释我的问题 我想知道小于给定值的最近整数。 现在这个值是双重类型的…所以有两种情况

如果值包含小数部分,即如果值为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嗯,是的,甚至更好。