zoukankan      html  css  js  c++  java
  • 数字转大写钱币

     1 public class Tool {
     2 
     3     private static final String UNIT = "万千佰拾亿千佰拾万千佰拾元角分";
     4     private static final String DIGIT = "零壹贰叁肆伍陆柒捌玖";
     5     private static final double MAX_VALUE = 9999999999999.99D;
     6     public static String change(double v) {
     7         if (v < 0 || v > MAX_VALUE){
     8             return "参数非法!";
     9         }
    10         long lo = Math.round(v * 100);
    11         if (lo == 0){
    12             return "零元整";
    13         }
    14         String strValue = lo + "";
    15         // i用来控制数
    16         int i = 0;
    17         // j用来控制单位
    18         int j = UNIT.length() - strValue.length();
    19         String rs = "";
    20         boolean isZero = false;
    21         for (; i < strValue.length(); i++, j++) {
    22             char ch = strValue.charAt(i);
    23             if (ch == '0') {
    24                 isZero = true;
    25                 if (UNIT.charAt(j) == '亿' || UNIT.charAt(j) == '万' || UNIT.charAt(j) == '元') {
    26                     rs = rs + UNIT.charAt(j);
    27                     isZero = false;
    28                 }
    29             } else {
    30                 if (isZero) {
    31                     rs = rs + "零";
    32                     isZero = false;
    33                 }
    34                 rs = rs + DIGIT.charAt(ch - '0') + UNIT.charAt(j);
    35             }
    36         }
    37         if (!rs.endsWith("分") && !rs.endsWith("角")) {
    38             rs = rs + "整";
    39         }
    40         rs = rs.replaceAll("亿万", "亿");
    41         return rs;
    42     }
    43 
    44     public static void main(String[] args){
    45         System.out.println(Tool.change(70005001.0));
    46 //        System.out.println(Tool.change(12356789.9845));
    47     }
    48 }  
  • 相关阅读:
    [自用] 数论和组合计数类数学相关(定理&证明&板子)
    OI回忆录?
    [UOJ310] 黎明前的巧克力
    [总结] 后缀自动机学习笔记
    [总结] 动态点分治学习笔记
    [HEOI2018] 秘密袭击coat
    [51nod1355] 斐波那契的最小公倍数
    [SRM601] WinterAndSnowmen
    [总结] 二项式反演学习笔记
    [Luogu4705] 玩游戏
  • 原文地址:https://www.cnblogs.com/liuyifan/p/6868812.html
Copyright © 2011-2022 走看看