From c7ecb0f33189aff5f8234666c26b75c6621bb83b Mon Sep 17 00:00:00 2001
From: czt <czt18638530771@163.com>
Date: 星期一, 08 十二月 2025 18:43:18 +0800
Subject: [PATCH] 单仓移库页面
---
fzzy-igdss-core/src/main/java/com/fzzy/igds/utils/MoneyUtil.java | 129 +++++++++++++++++++++++++++++++++++++++++++
1 files changed, 129 insertions(+), 0 deletions(-)
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/utils/MoneyUtil.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/utils/MoneyUtil.java
new file mode 100644
index 0000000..2c4ea14
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/utils/MoneyUtil.java
@@ -0,0 +1,129 @@
+package com.fzzy.igds.utils;
+
+import java.math.BigDecimal;
+
+/**
+ *
+ *
+ * 鏁板瓧杞崲涓烘眽璇腑浜烘皯甯佺殑澶у啓<br>
+ *
+ */
+public class MoneyUtil {
+ /**
+ * 姹夎涓暟瀛楀ぇ鍐�
+ */
+ private static final String[] CN_UPPER_NUMBER = { "闆�", "澹�", "璐�", "鍙�", "鑲�",
+ "浼�", "闄�", "鏌�", "鎹�", "鐜�" };
+ /**
+ * 姹夎涓揣甯佸崟浣嶅ぇ鍐欙紝杩欐牱鐨勮璁$被浼间簬鍗犱綅绗�
+ */
+ private static final String[] CN_UPPER_MONETRAY_UNIT = { "鍒�", "瑙�", "鍏�",
+ "鎷�", "浣�", "浠�", "涓�", "鎷�", "浣�", "浠�", "浜�", "鎷�", "浣�", "浠�", "鍏�", "鎷�",
+ "浣�", "浠�" };
+ /**
+ * 鐗规畩瀛楃锛氭暣
+ */
+ private static final String CN_FULL = "鏁�";
+ /**
+ * 鐗规畩瀛楃锛氳礋
+ */
+ private static final String CN_NEGATIVE = "璐�";
+ /**
+ * 閲戦鐨勭簿搴︼紝榛樿鍊间负2
+ */
+ private static final int MONEY_PRECISION = 2;
+ /**
+ * 鐗规畩瀛楃锛氶浂鍏冩暣
+ */
+ private static final String CN_ZEOR_FULL = "闆跺厓" + CN_FULL;
+
+ /**
+ * 鎶婅緭鍏ョ殑閲戦杞崲涓烘眽璇腑浜烘皯甯佺殑澶у啓
+ *
+ * @param numberOfMoney
+ * 杈撳叆鐨勯噾棰�
+ * @return 瀵瑰簲鐨勬眽璇ぇ鍐�
+ */
+ public static String formatToCN(BigDecimal numberOfMoney) {
+ StringBuffer sb = new StringBuffer();
+ // -1, 0, or 1 as the value of this BigDecimal is negative, zero, or
+ // positive.
+ int signum = numberOfMoney.signum();
+ // 闆跺厓鏁寸殑鎯呭喌
+ if (signum == 0) {
+ return CN_ZEOR_FULL;
+ }
+ // 杩欓噷浼氳繘琛岄噾棰濈殑鍥涜垗浜斿叆
+ long number = numberOfMoney.movePointRight(MONEY_PRECISION)
+ .setScale(0, 4).abs().longValue();
+ // 寰楀埌灏忔暟鐐瑰悗涓や綅鍊�
+ long scale = number % 100;
+ int numUnit = 0;
+ int numIndex = 0;
+ boolean getZero = false;
+ // 鍒ゆ柇鏈�鍚庝袱浣嶆暟锛屼竴鍏辨湁鍥涗腑鎯呭喌锛�00 = 0, 01 = 1, 10, 11
+ if (!(scale > 0)) {
+ numIndex = 2;
+ number = number / 100;
+ getZero = true;
+ }
+ if ((scale > 0) && (!(scale % 10 > 0))) {
+ numIndex = 1;
+ number = number / 10;
+ getZero = true;
+ }
+ int zeroSize = 0;
+ while (true) {
+ if (number <= 0) {
+ break;
+ }
+ // 姣忔鑾峰彇鍒版渶鍚庝竴涓暟
+ numUnit = (int) (number % 10);
+ if (numUnit > 0) {
+ if ((numIndex == 9) && (zeroSize >= 3)) {
+ sb.insert(0, CN_UPPER_MONETRAY_UNIT[6]);
+ }
+ if ((numIndex == 13) && (zeroSize >= 3)) {
+ sb.insert(0, CN_UPPER_MONETRAY_UNIT[10]);
+ }
+ sb.insert(0, CN_UPPER_MONETRAY_UNIT[numIndex]);
+ sb.insert(0, CN_UPPER_NUMBER[numUnit]);
+ getZero = false;
+ zeroSize = 0;
+ } else {
+ ++zeroSize;
+ if (!(getZero)) {
+ sb.insert(0, CN_UPPER_NUMBER[numUnit]);
+ }
+ if (numIndex == 2) {
+ if (number > 0) {
+ sb.insert(0, CN_UPPER_MONETRAY_UNIT[numIndex]);
+ }
+ } else if (((numIndex - 2) % 4 == 0) && (number % 1000 > 0)) {
+ sb.insert(0, CN_UPPER_MONETRAY_UNIT[numIndex]);
+ }
+ getZero = true;
+ }
+ // 璁﹏umber姣忔閮藉幓鎺夋渶鍚庝竴涓暟
+ number = number / 10;
+ ++numIndex;
+ }
+ // 濡傛灉signum == -1锛屽垯璇存槑杈撳叆鐨勬暟瀛椾负璐熸暟锛屽氨鍦ㄦ渶鍓嶉潰杩藉姞鐗规畩瀛楃锛氳礋
+ if (signum == -1) {
+ sb.insert(0, CN_NEGATIVE);
+ }
+ // 杈撳叆鐨勬暟瀛楀皬鏁扮偣鍚庝袱浣嶄负"00"鐨勬儏鍐碉紝鍒欒鍦ㄦ渶鍚庤拷鍔犵壒娈婂瓧绗︼細鏁�
+ if (!(scale > 0)) {
+ sb.append(CN_FULL);
+ }
+ return sb.toString();
+ }
+
+ public static void main(String[] args) {
+ double money = 11901.1;
+ BigDecimal numberOfMoney = new BigDecimal(money);
+ String s = MoneyUtil.formatToCN(numberOfMoney);
+ System.out.println("浣犺緭鍏ョ殑閲戦涓猴細銆�" + money + "銆� #--# [" + s.toString()
+ + "]");
+ }
+}
--
Gitblit v1.9.3