C# 將數(shù)值金額轉(zhuǎn)換為人民幣大寫(支持多個(gè)小數(shù)點(diǎn))

static string[] ChineseNumbers = { "零", "壹", "貳", "叁", "肆", "伍", "陸", "柒", "捌", "玖" };
static string[] ChineseUnits = { "", "拾", "佰", "仟" };
static string[] ChineseGroupUnits = { "", "萬(wàn)", "億", "萬(wàn)億" };

public static void Main1()
{
    // 示例金額
    decimal amount = 123456089.12345m;

    string chineseAmount = ConvertToChineseAmount(amount);
    Console.WriteLine(chineseAmount);
}

static string ConvertToChineseAmount(decimal amount)
{
    if (amount == 0)
    {
        return "零元整";
    }

    string result = "";

    // 處理整數(shù)部分
    long integerPart = (long)Math.Floor(Math.Abs(amount));
    result += ConvertIntegerPartToChinese(integerPart);

    // 處理小數(shù)部分
    decimal decimalPart = Math.Abs(amount) - integerPart;
    result += ConvertDecimalPartToChinese(decimalPart);

    return result;
}

static string ConvertIntegerPartToChinese(long integerPart)
{
    string result = "";

    int groupIndex = 0;
    while (integerPart > 0)
    {
        int group = (int)(integerPart % 10000);
        if (group > 0)
        {
            result = ConvertGroupToChinese(group) + ChineseGroupUnits[groupIndex] + result;
        }

        integerPart /= 10000;
        groupIndex++;
    }

    return result + "元";
}

static string ConvertGroupToChinese(int group)
{
    string result = "";
    int unitIndex = 0;
    bool lastNonZero = false;

    while (group > 0)
    {
        int digit = group % 10;

        if (digit > 0)
        {
            result = ChineseNumbers[digit] + ChineseUnits[unitIndex] + result;
            lastNonZero = true;
        }
        else
        {
            if (lastNonZero)
            {
                result = ChineseNumbers[digit] + result;
                lastNonZero = false;
            }
        }

        group /= 10;
        unitIndex++;
    }

    return result;
}

static string ConvertDecimalPartToChinese(decimal decimalPart)
{
    if (decimalPart == 0)
    {
        return "整";
    }

    string result = "";

    for (int i = 1; i <= 5; i++)
    {
        int digit = (int)(decimalPart * 10);
        if (digit > 0)
        {
            result += ChineseNumbers[digit] + GetDecimalUnit(i);
        }

        decimalPart = (decimalPart * 10) - digit;
    }

    return result;
}

static string GetDecimalUnit(int position)
{
    switch (position)
    {
        case 1: return "角";
        case 2: return "分";
        case 3: return "厘";
        case 4: return "毫";
        case 5: return "絲";
        default: return "";
    }
}

輸出結(jié)果:

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市滥嘴,隨后出現(xiàn)的幾起案子蓝纲,更是在濱河造成了極大的恐慌女责,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,816評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宪祥,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)蝗茁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)寻咒,“玉大人哮翘,你說(shuō)我怎么就攤上這事∽猩” “怎么了忍坷?”我有些...
    開(kāi)封第一講書人閱讀 158,300評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)熔脂。 經(jīng)常有香客問(wèn)我佩研,道長(zhǎng),這世上最難降的妖魔是什么霞揉? 我笑而不...
    開(kāi)封第一講書人閱讀 56,780評(píng)論 1 285
  • 正文 為了忘掉前任旬薯,我火速辦了婚禮,結(jié)果婚禮上适秩,老公的妹妹穿的比我還像新娘绊序。我一直安慰自己,他們只是感情好秽荞,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,890評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布骤公。 她就那樣靜靜地躺著,像睡著了一般扬跋。 火紅的嫁衣襯著肌膚如雪阶捆。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 50,084評(píng)論 1 291
  • 那天钦听,我揣著相機(jī)與錄音洒试,去河邊找鬼。 笑死朴上,一個(gè)胖子當(dāng)著我的面吹牛垒棋,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播痪宰,決...
    沈念sama閱讀 39,151評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼叼架,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼畔裕!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起碉碉,我...
    開(kāi)封第一講書人閱讀 37,912評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤柴钻,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后垢粮,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體贴届,經(jīng)...
    沈念sama閱讀 44,355評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,666評(píng)論 2 327
  • 正文 我和宋清朗相戀三年蜡吧,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了毫蚓。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,809評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡昔善,死狀恐怖元潘,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情君仆,我是刑警寧澤翩概,帶...
    沈念sama閱讀 34,504評(píng)論 4 334
  • 正文 年R本政府宣布,位于F島的核電站返咱,受9級(jí)特大地震影響钥庇,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜咖摹,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,150評(píng)論 3 317
  • 文/蒙蒙 一评姨、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧萤晴,春花似錦吐句、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至屯断,卻和暖如春文虏,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背裹纳。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,121評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留紧武,地道東北人剃氧。 一個(gè)月前我還...
    沈念sama閱讀 46,628評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像阻星,于是被迫代替她去往敵國(guó)和親朋鞍。 傳聞我的和親對(duì)象是個(gè)殘疾皇子已添,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,724評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容