激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

香港云服务器
服務器之家 - 編程語言 - Java教程 - java中金額元轉萬元工具類的實例

java中金額元轉萬元工具類的實例

2021-08-10 11:44毛公鼎 Java教程

這篇文章主要介紹了java中金額元轉萬元工具類的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

我就廢話不多說了,大家還是直接看代碼吧~

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
public static void main(String[] args) {
  // 具體的金額(單位元)
  String value = "88000067898";
  BigDecimal bigDecimal = new BigDecimal(value);
  // 轉換為萬元(除以10000)
  BigDecimal decimal = bigDecimal.divide(new BigDecimal("10000"));
  // 保留兩位小數
  DecimalFormat formater = new DecimalFormat("0");
  // 四舍五入
  formater.setRoundingMode(RoundingMode.HALF_UP);
  // 格式化完成之后得出結果
  String formatNum = formater.format(decimal);
  System.out.println(formatNum);
 }
 /**元轉萬元且四舍五入取整*/
 public static String getNumberWan(String value) {
  BigDecimal bigDecimal = new BigDecimal(value);
  // 轉換為萬元(除以10000)
  BigDecimal decimal = bigDecimal.divide(new BigDecimal("10000"));
  // 保留兩位小數
  DecimalFormat formater = new DecimalFormat("0");
  // 四舍五入
  formater.setRoundingMode(RoundingMode.HALF_UP);
  // 格式化完成之后得出結果
  String rs = formater.format(decimal);
  return rs;
 }
 
 /**元轉萬元且保留兩位小數并四舍五入*/
 public static String getNumberWanTwo(String value) {
  BigDecimal bigDecimal = new BigDecimal(value);
  // 轉換為萬元(除以10000)
  BigDecimal decimal = bigDecimal.divide(new BigDecimal("10000"));
  // 保留兩位小數
  DecimalFormat formater = new DecimalFormat("0");
  // 四舍五入
  formater.setRoundingMode(RoundingMode.HALF_UP);
  // 格式化完成之后得出結果
  String rs = formater.format(decimal);
  return rs;
 }

補充:用java實現將金額由數字轉為中文的數字金額

寫一個金額由數字轉為中文的數字金額

例如:

123123.12轉為壹拾貳萬叁仟壹佰貳拾叁元壹角貳分

由于是從開發過程中代碼直接copy過來的,有一部分可以忽略,新人剛剛工作,寫的不好,請多指正

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
import java.util.Scanner;
public class Test {
  //數字單位
  private static final String[] NUMBERS_UNITS= {"拾","佰","仟","萬"};
  public static void main(String[] args) {
    Test st=new Test();
    Scanner scanner=new Scanner(System.in);
    System.out.println("請輸入金額:");
    //獲取前端傳遞過來的金額數字
    String money=scanner.nextLine();
    //1.判斷是否為null
    st.isNull(money);
    //2.判斷是否有非法字符
    st.isIllegal(money);
    //3.判斷是否超過限額
    String[] array=st.isBeyondMax(money);
    //4.整數位字符轉換
    StringBuffer chineseInt=st.convertInt(array[0]);
    //5.判斷有無小數位
    if(array.length==2) {
      //6.有則進行小數位字符轉換
      StringBuffer chineseDec=st.convertDec(array[1]);
      //7.拼接整數和小數位
      chineseInt=chineseInt.append(chineseDec);
    }
    //8.將轉為大寫的金額設置回總線
    System.out.println(chineseInt);
  }
  /**
   * 將小數位的金額數字轉化為中文大寫
   * @param string 金額數字
   * @return 轉為中文的金額數字
   */
  private StringBuffer convertDec(String string) {
    StringBuffer str=convert(string);
    switch(str.length()) {
      case 1:
        str.append("角");
        break;
      case 2:
        str.append("分");
        str.insert(1, "角");
        break;
    }
    return str;
  }
  /**
   * 將整數位的金額數字對應轉化為中文大寫
   * @param string 金額數字
   * @return 轉為中文的金額數字
   */
  private StringBuffer convertInt(String string) {
    StringBuffer str=convert(string);
    int length=str.length()-1;
    for (int i = 0,j=str.length()-1; i < length; i++,j--) {
      int v=i%4;
      System.out.println("i:"+i+" j:"+j+" v:"+v+" "+str.toString());
      str.insert(j, NUMBERS_UNITS[v]);
    }
    str.append("元");
    return str;
  }
  /**
   * 循環整個字符串,替換字符
   * @param string 要替換的字符串
   * @return 替換好的字符
   */
  private StringBuffer convert(String string) {
    StringBuffer str=new StringBuffer(string);
    for (int i = 0; i < str.length(); i++) {
      str.replace(i, i+1,replaceCharacter(str.substring(i, i+1)));
    }
    return str;
  }
  /**
   * 將給定的數字字符替換為對應的中文數字字符
   * @param string 數字字符
   * @return 中文數字字符
   */
  private String replaceCharacter(String string) {
    switch(string) {
      case "0":
        string="零";
        break;
      case "1":
        string="壹";
        break;
      case "2":
        string="貳";
        break;
      case "3":
        string="叁";
        break;
      case "4":
        string="肆";
        break;
      case "5":
        string="伍";
        break;
      case "6":
        string="陸";
        break;
      case "7":
        string="柒";
        break;
      case "8":
        string="捌";
        break;
      case "9":
        string="玖";
        break;
    }
    return string;
  }
  /**
   * 檢測傳入金額字符是否為空
   * @param money 金額字符
   */
  private void isNull(String money) {
    if(money == null) {
      //拋出異常
    }
  }
  /**
   * 檢測傳入金額字符是否符合條件
   * @param money 金額字符
   */
  private void isIllegal(String money) {
    if(!money.matches("\\d+.?\\d*")) {
      //拋出異常
    }
  }
  /**
   * 檢測傳入金額字符是否超出最大值
   * @param money 金額字符
   * @return 返回拆分的金額數字
   */
  private String[] isBeyondMax(String money) {
    String[] array=money.split("\\.");
    //整數位不能超過9位,小數位不能超過2為
    if(array[0].length()>9 || (array.length>1 &&array[1].length()>2)) {
      //拋出異常
    }
    return array;
  }
}

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持服務器之家。如有錯誤或未考慮完全的地方,望不吝賜教。

原文鏈接:https://blog.csdn.net/qiucheng_198806/article/details/88837186

延伸 · 閱讀

精彩推薦
1556
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 欧美大荫蒂xxx | 久久av喷吹av高潮av懂色 | 斗破苍穹在线观看免费完整观看 | 国产精品99一区二区 | 草人人| 欧美亚洲一区二区三区四区 | 久久国产精品久久久久久电车 | 海角在线观看91一区二区 | 中文字幕国产日韩 | 久久精品一级 | www.成人精品 | 在线看三级 | 国产亚洲欧美在线视频 | 羞羞视频免费网站 | 福利一区二区三区视频在线观看 | 国产v综合v亚洲欧美久久 | 成年免费网站 | 日本aaaa片毛片免费观蜜桃 | 欧美a在线观看 | 日本在线播放一区二区三区 | 久久99久久99精品 | 在线观看一区二区三区四区 | 亚洲精品a在线观看 | 真人一级毛片免费 | 亚洲欧洲日产v特级毛片 | 免费一级欧美 | 国产精品9191 | 欧美一级黄视频 | 亚洲午夜1000理论片aa | 成人毛片视频在线播放 | 亚洲成年人免费网站 | 99视频有精品视频高清 | 最污网站| 国产视频在线一区 | 国产亚洲精品久久久久婷婷瑜伽 | 国产成人精品一区在线播放 | 免费看性xxx高清视频自由 | 久久99精品久久久久久小说 | 欧美一级特黄aaaaaaa什 | 精品一区二区免费视频视频 | 免费毛片播放 |