当前位置: 首页 > 面试题库 >

四舍五入到最接近的分数(一半,四分之一等)

吴西岭
2023-03-14
问题内容

因此,我需要创建以下函数,但是如果不进行复杂的数学运算,我的头将无法想到PHP中的任何可能性。

  • 始终 到最接近的十进制(1.81 = 1.90,1.89 = 1.90,1.85 = 1.90)
  • 总是 四舍五入到最接近的小数点(1.81 = 1.80,1.89 = 1.80,1.85 = 1.80)
  • 始终 到最接近的X.25 / X.50 / X.75 /×.00(1.81 = 2,1.32 = 1.50)
  • 始终 至最接近的X.25 / X.50 / X.75 /×.00(1.81 = 1.75,1.32 = 1.25)
  • 始终 到最接近的X.50 / 1(1.23 = 1.50,1.83 = 2)
  • 始终 至最接近的X.50 / 1(1.23 = 1,2,1.83 = 1.50)

我已经在Google上搜索了2个小时,而出现的唯一内容就是Excel论坛。一些简单的PHP行是否可能?


问题答案:

既然你正在寻找 四分之三
.00.25.50.75),乘你的电话号码由4轮最接近的整数根据需要(floor如果向下,ceil如果向上),然后除以4。

1.32,最接近的第四位

1.32 * 4 = 5.28
底(5.28)= 5.00
5.00 / 4 = 1.25

相同的原理适用于任何其他组分,例如 三分之二八分
.0.125.25.375.5.625.75.875)。例如:

1.77,最接近的八分之一

1.77 * 8 = 14.16
ceil(14.16)= 15.00
15.00 / 8 = 1.875

只是为了好玩,您可以编写如下函数:

function floorToFraction($number, $denominator = 1)
{
    $x = $number * $denominator;
    $x = floor($x);
    $x = $x / $denominator;
    return $x;
}

echo floorToFraction(1.82);      // 1
echo floorToFraction(1.82, 2);   // 1.5
echo floorToFraction(1.82, 3);   // 1.6666666666667
echo floorToFraction(1.82, 4);   // 1.75
echo floorToFraction(1.82, 9);   // 1.7777777777778
echo floorToFraction(1.82, 25);  // 1.8


 类似资料:
  • 问题内容: 我来到了Java程序的一部分,我需要四舍五入到最接近的百位数,并认为可能有某种方法可以做到这一点,但我想没有。因此,我在网上搜索了示例或任何答案,但由于所有示例看起来都接近最接近的一百,因此至今仍未找到任何答案。我只想这样做并向上取整。也许有一些我忽略的简单解决方案。我已经尝试了其他功能,但到目前为止还没有找到答案。如果有人可以帮助我解决这个问题,我将不胜感激。 如果我的电话号码是20

  • 问题内容: 我试图找到一种方法将值四舍五入到最接近的0.05。例如: 0.93四舍五入为0.95 0.81四舍五入为0.80 0.65停留0.65 0.68至0.70 0.67至0.65 用Java有没有简单的方法可以做到这一点? 问题答案: 一种选择如下: 将该值乘以20。 使用进行四舍五入为最接近的整数。 再除以20。 例如: 希望这可以帮助!

  • 问题内容: 考虑到今天的时间,例如2:24 PM,我如何将其舍入为2:30 PM? 同样,如果时间是2:17 PM,如何将其舍入为2:15 PM? 问题答案: 四舍五入 您将需要使用取模来截断四分之一小时: 正如EJP所指出的,这也是可以的(替换最后一行,仅在日历宽松时有效): 改进之处 如果要精确,则还必须截断较小的字段: 您还可以使用DateUtils.truncate()从Apache的共享

  • 问题内容: 我已经将数据文件加载到Python pandas数据框中。我有一个格式的datetime列。 我需要做的是创建一个新列,将其四舍五入到最接近的四分之一小时。因此,上述日期将四舍五入为。 如何在熊猫中做到这一点?我尝试从此处使用解决方案,但出现错误。 问题答案: 假设您的系列由对象组成,则需要使用。范例- 上面的示例始终四舍五入到前一个四分之一小时(行为类似于发言权功能)。 编辑 四舍五

  • 问题内容: 我需要以下结果 还是?我该怎么办? 问题答案: 您可以使用将小数位数减少为零。假设拥有要取整的值: 使用起来有点麻烦,因为它要求您指定要保留的位数。在您的示例中,该值为3,但这不适用于所有值: (请注意,对象是不可改变的,都和会返回一个新的对象。)

  • 问题内容: 我有两个Int值(它们必须是Ints),我希望它们在方程式中四舍五入到最接近的值; 该方程使变量始终向下舍入到最小值。例如,以下数字表示; 20000/7000等于2.857 …但是变量显示。 我如何舍入到最接近的数字 而不将其更改为Double 问题答案: 对于 非负 整数,以下函数以纯整数算术给出所需的结果: 例子: 这个想法是 这是任意签名的整数的一种可能实现,该整数也不会溢出: