关于几乎整数的问题

时间:2010-06-25 13:08:07

标签: algorithm

给出实数如何通过编程找到它是否几乎是整数?

http://mathworld.wolfram.com/AlmostInteger.html

感谢

3 个答案:

答案 0 :(得分:9)

  • 查找数字最接近的整数
  • 找出该整数与数字本身之间的差异
  • 取这个差异的绝对值
  • 如果它低于您想要提供的任何阈值,请将其计为“几乎整数”

你究竟如何做到这一点取决于你正在使用的语言。例如,在使用decimal类型的C#中,您可以拥有:

public static bool IsAlmostInteger(decimal value, decimal threshold)
{
    decimal closestInteger = Math.Round(value);
    decimal diff = Math.Abs(closestInteger - value);
    return diff < threshold;
}

答案 1 :(得分:0)

http://www.java2s.com/Open-Source/Java-Document/Science/Apache-commons-math-1.1/org/apache/commons/math/fraction/Fraction.java.htm有一个示例Fraction方法,用ε值限制值检查“几乎”整数,但这对你来说是否足够准确取决于你?

答案 2 :(得分:0)

对于任何语言 -

  1. 通过将(您的数字+ 0.5)转换为整数来找到最接近的整数 - 基本上,切掉小数部分,只留下整数部分。
  2. 从原始数字中减去,并记下差异的(绝对值)。如果它在您想要的范围内,那就很好。
  3. 请注意,(1)中的舍入方法只能在正数中预测。如果你想要一个适合所有人的,请尝试查看rounding methods。可以说,大多数编程语言已经具有内置的舍入功能,如果你能找到的话。