Ark_Scorpion 2021-10-26 18:14 采纳率: 55.2%
浏览 53
已结题

用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分

  • 写回答

1条回答 默认 最新

  • 诗人在流浪 2021-10-26 22:25
    关注
    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分

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月30日
  • 创建了问题 10月26日

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站