【问题标题】:How to write a RoundDown() function with loops, + - * / and % (modulo)?如何使用循环、+ - * / 和 %(模数)编写 RoundDown() 函数?
【发布时间】:2015-12-17 11:22:50
【问题描述】:

我只是在想,如果你只有循环,+ - * / 和 %(模数)。 是否可以将浮点数向下舍入到下一个整数?
例如 278.791 到 278?

我已经考虑了很长时间,但仍然找不到解决方案。有没有可能?

【问题讨论】:

  • 您希望% 为花车工作如何? (它因不同的语言而异:有些语言根本不为浮点数实现 % ;其他语言对负操作数有不同的行为。)哦,你所说的“向下取整”是什么意思?例如,-2.3 应该采用哪种方式?
  • 我不知道,我以为 % 的行为就像 +-* 和 / 的行为一样是标准化的。

标签: rounding modulo floor


【解决方案1】:

在 Python 中 % 有效:

#!/usr/bin/python
x = 278.791
y = x - (x % 1)
print x, y

在 C 中必须使用其他方法:

#include <stdio.h>
#include <math.h>
int main() {
    float x = 278.791;
    float y = fmod(x,1.0);
    printf("%f, %f\n", x, y);
    x = 278.791;
    y = x - (int)x;
    printf("%f, %f\n", x, y);
}

【讨论】:

  • 不错。从我的测试中我可以看出,在 javascript 和 C# 中,您可以使用 % 方法,而对于 php,您必须使用 fmod。
猜你喜欢
  • 2020-12-24
  • 1970-01-01
  • 2012-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多