相关疑难解决方法(0)

找到两个浮点数的比率的算法?

我需要找到一个浮点数与另一个浮点数的比率,该比率需要是两个整数.例如:

  • 输入: 1.5, 3.25
  • 输出: "6:13"

有谁知道吗?在互联网上搜索,我没有找到这样的算法,也没有找到两个浮点数(只是整数)的最小公倍数或分母的算法.

Java实现:


这是我将使用的最终实现:

public class RatioTest
{
  public static String getRatio(double d1, double d2)//1.5, 3.25
  {
    while(Math.max(d1,d2) < Long.MAX_VALUE && d1 != (long)d1 && d2 != (long)d2)
    {
      d1 *= 10;//15 -> 150
      d2 *= 10;//32.5 -> 325
    }
    //d1 == 150.0
    //d2 == 325.0
    try
    {
      double gcd = getGCD(d1,d2);//gcd == 25
      return ((long)(d1 / gcd)) + ":" + ((long)(d2 / gcd));//"6:13"
    }
    catch (StackOverflowError er)//in case getGDC (a recursively looping method) repeats …
Run Code Online (Sandbox Code Playgroud)

algorithm floating-point integer

15
推荐指数
2
解决办法
6741
查看次数

标签 统计

algorithm ×1

floating-point ×1

integer ×1