用java进行元角分的转换,数字原本带有小数点

题目描述
定义一个类Money,里面有三个成员变量yuan、jiao、fen分别表示元、角、分。定义一个构造方法,它接收一个表示多少元的float类型的参数(如3.1元),并以此去初始化所创建的Money对象的yuan、jiao、fen。定义一个方法toString(),Money对象调用这个方法可将自己转换成“X元X角X分“方式的字符串。
写一个演示类,它不断地读入一系列float类型的数,为它们创建一个个Money对象,并将这些对象转换成字符串输出。输入负数结束上述过程。

输入样例
3.12 5.4 122.39 666.66 1092.54 -1 23.2

输出样例
3元1角2分
5元4角0分
122元3角9分
666元6角6分
1092元5角4分

import java.text.DecimalFormat;
import java.util.Scanner;

public class Test{
    public static void main(String[] args) {
        System.out.println("请输入浮点数,输入负数结束:");
        Scanner sc = new Scanner(System.in);
        float[] num = new float[100];
        for(int i=0;;i++){
             num[i] = sc.nextFloat();
            if(num[i]<0){
                break;
            }
            Money money = new Money(num[i]);
            String str = money.toString(num[i]);
            System.out.println(str);
        }

    }

}
  class Money{
    int yuan,jiao,fen;
    public Money(float x) {
        this.yuan=yuan;
        this.jiao=jiao;
        this.fen=fen;
    }

    public  String toString(float x ) {
        DecimalFormat format = new DecimalFormat("0.##");
        x = Float.valueOf(format.format(x));
        String a = String.valueOf(x);
        String[] b = a.split("\\.");
        this.yuan = Integer.valueOf(b[0]);
        Integer c = Integer.valueOf(b[1]);
        if(c<10){
            this.jiao = c;
            this.fen =0;
            return yuan+"元"+jiao+"角"+"0分";
        }else if(c==0){
            return yuan+"元"+"0角"+"0分";
        }else{
            this.fen = c%10;
            this.jiao = c/10;
            return yuan+"元"+jiao+"角"+fen+"分";
        }
    }
}

控制台打印结果:
请输入浮点数,输入负数结束:
3.12 5.4 122.39 666.66 1092.54 -1 23.2
3元1角2分
5元4角0分
122元3角9分
666元6角6分
1092元5角4分