[疯狂Java讲义第四章练习]浮点数转换成人民币读法字符串

疯狂Java讲义第四章练习

package com.demo;
/**
 * 把一个浮点数分解为整数部分和小数部分
 * @param integer 整数部分
 * @param decimal 小数部分
 * @param divide()分解的方法
 */
public class DivideNum {
    private int integer;
    private int decimal;
    public int[] divide(double num){
        //直接强制转换可以直接得到整数部分
        integer=(int)num; 
        //用原来的数减去整数部分可得小数部分
        //Math.round()是四舍五入,数据类型为long
        decimal=(int)Math.round((num-integer)*100);
        System.out.println("运行成功");
        return new int[]{integer,decimal};
    }
}
package com.demo;
/**
 * @param str[]是汉字字符串
 * @param munit[]是单位字符串
 * @param transform()是转换方法
 */

public class Numtostring {
    private String[] str = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
    private String[] munit = {"十","百","千"};
    public String transform(int a){
        String result="";
        //通过String.valueOf(a).length()获得长度
        int len =String.valueOf(a).length();
        //将a转换为字符型,因为用整形不方便顺序读出数字的各个单位的数字
        String strnum=a+"";
        System.out.println(strnum);
        for(int i=0;i<len;i++){
        //charAt()方法返回指定索引位置的char值,因为char型数字和int型数字的ASCII码刚好差48
            int num = strnum.charAt(i)-48;
            System.out.println(num);
            //不为最后一位且不为零则加单位
            if(num!=0&&i!=len-1){
                result+=str[num]+munit[len-2-i];
                System.out.println(result);
            }
            //否则不加单位
            else{
                result+=str[num];
            }
        }
        System.out.println("运行成功!");
        return result;        
    }
}
package com.demo;
import java.util.Scanner;
/**
 * 测试
 */
import java.util.Arrays;
public class Text {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println("请输入一个四位数");
        Scanner sc = new Scanner(System.in);
        double imput=sc.nextDouble();
        sc.close();
        DivideNum fct1= new DivideNum();
        Numtostring fct2 = new Numtostring();
        int[] dividenum;
        dividenum=fct1.divide(imput);
        String result=fct2.transform(dividenum[0]);
        System.out.println("分离后的数字为:");
        System.out.println(Arrays.toString(dividenum));
        System.out.println("转换后的数字为:");
        System.out.println(result);
    }

}

 

转载于:https://www.cnblogs.com/wjlcoder/articles/5977282.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值