How to convert decimal to fractions?

前端 未结 10 2185
心在旅途
心在旅途 2020-12-06 06:26

What I need to convert decimal to fractions. It is easy to convert to 10\'s feet.

1.5 => 15/10

This can do via this code:



        
10条回答
  •  自闭症患者
    2020-12-06 07:24

    I prepared a solution for this question. Maybe it's look like primitive but working. I tested many decimal number. At least it can converting 1.5 to 3/2 :)

    public String kesirliYap(Double sayi){
        String[] a=payPaydaVer(sayi);
        return a[0]+"/"+a[1];
    }
    public String[] payPaydaVer(Double sayi){
    long pay;
    long payda;
    
      DecimalFormat df=new DecimalFormat("#");
        df.setRoundingMode(RoundingMode.FLOOR);
        String metin=sayi.toString();        
        int virguldenSonra=(metin.length() -metin.indexOf("."))-1;
        double payyda=Math.pow(10,virguldenSonra);
        double payy=payyda*sayi;
        String pays=df.format(payy);
        String paydas=df.format(payyda);
        pay=Long.valueOf(pays);
        payda=Long.valueOf(paydas);
    
    
       String[] kesir=sadelestir(pay,payda).split(",");
    
       return kesir;
    }
    
    private String sadelestir(Long pay,Long payda){
        DecimalFormat df=new DecimalFormat("#");
        df.setRoundingMode(RoundingMode.FLOOR);
        Long a=pay1;i--){
          double payy=pay/i;
          double paydaa=payda/i;
          String spay=df.format(payy);
          String spayda=df.format(paydaa);
          Long lpay=Long.valueOf(spay);
          Long lpayda=Long.valueOf(spayda);
          if((payy-lpay)==0&&(paydaa-lpayda)==0){
              b=df.format(pay/i);
              c=df.format(payda/i);
              sayac++;
              break;
          }
    
        }
    
        return sayac>0 ?  b+","+c:pay+","+payda;
    }
    

提交回复
热议问题