數字轉中文數字大寫

2021-07-04 01:41:06 字數 2077 閱讀 1644

做財務報表時常需要將金額轉化中文數字大寫,有點坑。

/**

*@author :qzc

*@createdate :2023年6月22日 下午6:08:20

*@version :1

* 類(介面)主要功能:

**/public

class

numbertocn ;

/*** 漢語中貨幣單位大寫,這樣的設計類似於佔位符

*/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 number2cnmontrayunit(bigdecimal numberofmoney)

//這裡會進行金額的四捨五入

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))

if ((scale > 0) && (!(scale % 10 > 0)))

int zerosize = 0;

while (true)

// 每次獲取到最後乙個數

numunit = (int) (number % 10);

if (numunit > 0)

if ((numindex == 13) && (zerosize >= 3))

sb.insert(0, cn_upper_monetray_unit[numindex]);

sb.insert(0, cn_upper_number[numunit]);

getzero = false;

zerosize = 0;

} else

if (numindex == 2)

} else

if (((numindex - 2) % 4 == 0) && (number % 1000 > 0))

getzero = true;

}// 讓number每次都去掉最後乙個數

number = number / 10;

++numindex;

}// 如果signum == -1,則說明輸入的數字為負數,就在最前面追加特殊字元:負

if (signum == -1)

// 輸入的數字小數點後兩位為"00"的情況,則要在最後追加特殊字元:整

if (!(scale > 0))

return sb.tostring();

}public

static

void

main(string args)

}

數字轉中文數字與中文數字轉數字

利用陣列與map的資料結構進行中文數字與數字之間的互相轉換 public class numberutil private static final char cn num private static final char cn unit private static final string c...

大寫中文數字 財務

壹 貳 叄 肆 伍 陸 柒 捌 玖 拾 佰 仟 萬 億 元 圓 角 分 零 整。這是大家經常要填寫的大寫數字,問什麼要用大寫數字呢?想必很多人都不是很清楚!先看看以下兩個有關大寫數字的 1 數碼與大 小寫數字的對照表 數碼 小寫數字 大寫數字 0 零 1 一 壹 2 二 貳 3 三 叄 參 4 四 ...

大寫中文數字 財務

壹 貳 叄 肆 伍 陸 柒 捌 玖 拾 佰 仟 萬 億 元 圓 角 分 零 整。這是大家經常要填寫的大寫數字,問什麼要用大寫數字呢?想必很多人都不是很清楚!先看看以下兩個有關大寫數字的 1 數碼與大 小寫數字的對照表 數碼 小寫數字 大寫數字 0 零 1 一 壹 2 二 貳 3 三 叄 參 4 四 ...