【问题标题】:Convert a fraction to a mixed number - Java Method将分数转换为带分数 - Java 方法
【发布时间】:2019-11-23 01:07:11
【问题描述】:

我的程序中有以下方法可以返回分数的混合数形式:

//Method to return mixed number form of fraction
public String toMixed(){
    String mixedNum;
    int wholeNum;
    wholeNum = Math.floorDiv(numerator,denominator);

    if (wholeNum == 0){
        mixedNum = numerator + "/" + denominator;
    }
    else if (numerator % denominator == 0)
        mixedNum = wholeNum + "";
    else if (wholeNum < 0)
        mixedNum = wholeNum + " " +
            -1*(numerator - wholeNum*denominator) + "/" + denominator*-1;
    else
       mixedNum = wholeNum + " " +
            (numerator - wholeNum*denominator) + "/" + denominator;

    return mixedNum;

虽然这适用于正数,但我得到的负数返回不正确。我想知道的是,是否有另一种更好的方法可以在 Java 中创建分数的混合数字形式,或者通过首先将发送到方法的数字转换为正数(如果为负数)来更容易地操作它以处理负数,然后将其转换为混合数,然后再转换为负数?无论如何,我感谢您的时间和帮助,我希望这很容易理解!

【问题讨论】:

    标签: java arrays methods


    【解决方案1】:

    假设 n 和 d 的 GCD 是 1 并且 d 不是负数,你会这样做:

    public static String toiMixed(int n, int d){
            if(n>=0) return n/d +"  "+ n%d + "/"+d;
            String s = n/d-1 + "  ";
            while((double)n/(double)d<0) n+=d;
            return s + n%d + "/" + d;
    }
    

    如果您需要更多帮助,请随时询问。

    【讨论】:

      猜你喜欢
      • 2017-03-28
      • 1970-01-01
      • 1970-01-01
      • 2015-11-12
      • 1970-01-01
      • 2016-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多