栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

疯狂java讲义第四章习题五将浮点数转换成人民币读法字符串

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

疯狂java讲义第四章习题五将浮点数转换成人民币读法字符串

package test4;

import java.util.Scanner;

public class 数字转中文读法 {
    public static void main(String[] args) {
        while(true) {
            Scanner sc = new Scanner(System.in);
            double num = sc.nextDouble();
            String s = change(num);
            System.out.println(s);
        }
    }

    private static String change(double num) {
        String[] a = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
        String[] b = {"十", "百", "千", "万"};
        String[] d = {"角", "分"};
        String c = "";
        var zhengshu = (long) num;
        var xiaoshu = Math.round((num - zhengshu) * 100);
        String z = String.valueOf(zhengshu);//将整数部分转化为字符串
        String x = String.valueOf(xiaoshu);//将小数部分转化为字符串
        int len = z.length();
        for (int i = 0; i < z.length(); i++) {//进行整数部分转换
            var number = z.charAt(i) - 48;
            if (number != 0 && len - 2 >= 0) {//对非零位数且非最后一位进行操作
                c = c + a[number] + b[len - 2];
                len--;
            }
            else if(number==0&&len-2>=0&&(z.charAt(i+1)-48)==0)//对为零位数进行操作
            {
                while(number==0&&len-2>=0)//判断后面是否为零,且不是最后一位
                {
                    i++;
                    number = z.charAt(i) - 48;
                    len--;
                }
                if(i!=z.length()-1||(z.charAt(z.length()-1)-48)!=0) {//判断是否到最后一位,且最后一位是否为零
                    c = c + a[0];
                    i--;
                }
            }
            else if(i==z.length()-1&&number==0) {//判断最后一位是否为0,如果为零不添加字符
                c+="";
            }
            else{//最后一位不为0的情况
                    c = c + a[number];
                    len--;
                }
            }
        c += "元";
        for (int i = 0; i < x.length(); i++) {//对小数部分进行判断
            var number = x.charAt(i) - 48;
            if (x.length()==2) {

                if (number == 0) {
                    c += "";
                } else
                    c = c + a[number] + d[i];
            }
            else
            {
                if (number == 0) {
                    c += "";
                }
                else
                    c=c+a[number]+d[1];
            }
        }
        return c;
    }

}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/337397.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号