国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C#將貨幣金額數字轉大寫漢字

這篇具有很好參考價值的文章主要介紹了C#將貨幣金額數字轉大寫漢字。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

一、對輸入數字的處理

二、源碼

1、Main()

2.類庫


一、對輸入數字的處理

????????用正則表達式對輸入的數字判斷是否符合貨幣格式,小數點前的數字串的長度是否不大于13。文章來源地址http://www.zghlxwxcb.cn/news/detail-802359.html

二、源碼

1、Main()

// 貨幣金額小寫數字轉大寫漢字
// 小數點前數字長度<=13,即不超過十億
using System.Text.RegularExpressions;

namespace NumtoUpperChinese
{
    partial class Program
    {
        /// <summary>
        /// 判斷輸入的是否貨幣格式,是否小數點前<=13,
        /// </summary>
        /// <param name="args"></param>
        private static void Main(string[] args)
        {
            ArgumentNullException.ThrowIfNull(args);
            Console.WriteLine("請輸入要判斷的字符串(貨幣格式)");
            string input = Console.ReadLine()!.ToString();
            
            if (input!="") 
            {
                bool isValidFormat = IsValidCurrencyFormat(input);
                if (isValidFormat)
                {
                    Console.WriteLine(NumtoUpper.MoneyToUpper(input));
                }
                else
                {
                    Console.WriteLine("輸入的貨幣格式無效");
                }

            }
            else
            {
                Console.WriteLine("輸入數字不能空,請重新輸入!", "提示");
            }
        }
        static bool IsValidCurrencyFormat(string input)
        {
            Regex regex = MyRegex();      // 定義正則表達式模式
            return regex.IsMatch(input);    // 返回匹配結果
        }

        [GeneratedRegex(@"^\d{0,13}(\.\d+)?$")]
        private static partial Regex MyRegex();
    }
}
//運行結果:
/*
請輸入要判斷的字符串(貨幣格式)
9999999999999.99
玖萬玖仟玖佰玖拾玖億玖仟玖佰玖拾玖萬玖仟玖佰玖拾玖圓玖角玖分

 */

2.類庫

// 類庫
namespace NumtoUpperChinese
{
    internal static class NumtoUpper
    {
        /// <summary>
        /// 金額轉換成中文大寫金額
        /// </summary>
        /// <param name="LowerMoney">eg:10.74</param>
        /// <returns></returns>
        public static string MoneyToUpper(string LowerMoney)
        {           
            string? ReturnValue;
            bool IsNegative = false; // 是否是負數
            if (LowerMoney.Trim()[..1] == "-")
            {
                // 是負數則先轉為正數
                LowerMoney = LowerMoney.Trim().Remove(0, 1);
                IsNegative = true;
            }
            string? strLower;
            string? strUpart = null;
            string? strUpper;
            int iTemp;
            // 保留兩位小數 123.489→123.49  123.4→123.4
            LowerMoney = Math.Round(double.Parse(LowerMoney), 2).ToString();
            if (LowerMoney.IndexOf('.') > 0)
            {
                if (LowerMoney.IndexOf('.') == LowerMoney.Length - 2)
                {
                    LowerMoney += ('0');
                }
            }
            else
            {
                LowerMoney += ".00";
            }
            strLower = LowerMoney;
            iTemp = 1;
            strUpper = "";
            while (iTemp <= strLower.Length)
            {
                switch (strLower.Substring(strLower.Length - iTemp, 1))
                {
                    case ".":
                        strUpart = "圓";
                        break;
                    case "0":
                        strUpart = "零";
                        break;
                    case "1":
                        strUpart = "壹";
                        break;
                    case "2":
                        strUpart = "貳";
                        break;
                    case "3":
                        strUpart = "叁";
                        break;
                    case "4":
                        strUpart = "肆";
                        break;
                    case "5":
                        strUpart = "伍";
                        break;
                    case "6":
                        strUpart = "陸";
                        break;
                    case "7":
                        strUpart = "柒";
                        break;
                    case "8":
                        strUpart = "捌";
                        break;
                    case "9":
                        strUpart = "玖";
                        break;
                }

                strUpart = iTemp switch
                {
                    1 => strUpart + "分",
                    2 => strUpart + "角",
                    3 => strUpart + "",
                    4 => strUpart + "",
                    5 => strUpart + "拾",
                    6 => strUpart + "佰",
                    7 => strUpart + "仟",
                    8 => strUpart + "萬",
                    9 => strUpart + "拾",
                    10 => strUpart + "佰",
                    11 => strUpart + "仟",
                    12 => strUpart + "億",
                    13 => strUpart + "拾",
                    14 => strUpart + "佰",
                    15 => strUpart + "仟",
                    16 => strUpart + "萬",
                    _ => strUpart + "",
                };
                strUpper = strUpart + strUpper;
                iTemp++;
            }

            strUpper = strUpper.Replace("零拾", "零");
            strUpper = strUpper.Replace("零佰", "零");
            strUpper = strUpper.Replace("零仟", "零");
            strUpper = strUpper.Replace("零零零", "零");
            strUpper = strUpper.Replace("零零", "零");
            strUpper = strUpper.Replace("零角零分", "整");
            strUpper = strUpper.Replace("零分", "整");
            strUpper = strUpper.Replace("零角", "零");
            strUpper = strUpper.Replace("零億零萬零圓", "億圓");
            strUpper = strUpper.Replace("億零萬零圓", "億圓");
            strUpper = strUpper.Replace("零億零萬", "億");
            strUpper = strUpper.Replace("零萬零圓", "萬圓");
            strUpper = strUpper.Replace("零億", "億");
            strUpper = strUpper.Replace("零萬", "萬");
            strUpper = strUpper.Replace("零圓", "圓");
            strUpper = strUpper.Replace("零零", "零");

            // 對壹圓以下的金額的處理
            if (strUpper[..1] == "圓")
            {
                strUpper = strUpper[1..];
            }
            if (strUpper[..1] == "零")
            {
                strUpper = strUpper[1..];
            }
            if (strUpper[..1] == "角")
            {
                strUpper = strUpper[1..];
            }
            if (strUpper[..1] == "分")
            {
                strUpper = strUpper[1..];
            }
            if (strUpper[..1] == "整")
            {
                strUpper = "零圓整";
            }
            ReturnValue = strUpper;

            if (IsNegative == true)
            {
                return "負" + ReturnValue;
            }
            else
            {
                return ReturnValue;
            }
        }
    }
}

到了這里,關于C#將貨幣金額數字轉大寫漢字的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • .NET神器:輕松實現數字轉大寫金額的秘籍與示例代碼

    .NET神器:輕松實現數字轉大寫金額的秘籍與示例代碼

    ? 概述: .NET中實現數字轉大寫金額可通過現有庫或自定義方法。自定義方法示例使用遞歸將數字分段轉換為中文大寫金額,處理了千、百、十、個位數。實際應用中可根據需求進一步擴展,例如處理小數部分或負數。 在.NET中,你可以使用以下方案之一來實現將數字轉成大寫

    2024年03月14日
    瀏覽(22)
  • js小寫金額轉大寫 自動轉換

    js小寫金額轉大寫 自動轉換

    話不多說 直接貼代碼 MVVM 就是 Model-View-ViewModel 的縮寫,MVVM 將視圖和業(yè)務邏輯分開。 View:視圖層,Model 數據模型,而 ViewModel 是把兩者建立通信的橋梁。 在 MVVM 框架下,View 和 Model 之間沒有直接的聯(lián)系,而是通過 ViewModel 進行交互。View 和 ViewModel 之間以及 Model 和 ViewModel 之

    2024年02月16日
    瀏覽(34)
  • 從鍵盤輸入一個字符,判斷該字符是數字字符、大寫字母、小寫字母、空格字符還是其他字符(C語言)
  • 【C語言】P166 10.有一篇文章,共有3行文字,每行有80個字符。要求分別統(tǒng)計出其中英文大寫字母、小寫字母、數字、空格以及其他字符的個數

    【C語言】P166 10.有一篇文章,共有3行文字,每行有80個字符。要求分別統(tǒng)計出其中英文大寫字母、小寫字母、數字、空格以及其他字符的個數

    P166 10.有一篇文章,共有3行文字,每行有80個字符。要求分別 統(tǒng)計出其中英文大寫字母、小寫字母、數字、空格以及其他字符的個數 ? 運行結果: ?

    2024年02月04日
    瀏覽(96)
  • js將數字金額轉換成中文金額格式

    在開發(fā)中我們經常會遇到處理數字的問題,下面介紹一種處理數字金額轉換為中文金額的方式: 我們通常使用三種書面數字系統(tǒng):全球使用的阿拉伯數字系統(tǒng)和兩種本地數字系統(tǒng)(繁體、簡體)。常規(guī)時我們使用阿拉伯數字(1,2,3等),但在某些情況中,如金融中我們會使

    2024年02月16日
    瀏覽(26)
  • javascript數字轉中文大寫

    有時候業(yè)務需要做大寫【一二三四五六七八九十】的標題,那對于js普通的數據結構排序是按【0123456789】。所以我們需要做一些數字的轉換,實現小寫轉大寫才能滿足業(yè)務需求。

    2024年02月11日
    瀏覽(19)
  • C#漢字轉拼音_Microsoft.PinYinConverter漢字轉拼音

    C#漢字轉拼音_Microsoft.PinYinConverter漢字轉拼音

    C#漢字轉拼音_Microsoft.PinYinConverter漢字轉拼音 一、Microsoft.PinYinConverter 引入 1.Nuget命令引入 2.Nuget包管理引入 ?Nuget連接地址:NuGet Gallery | Microsoft.PinYinConverter 1.0.0 二、Microsoft.PinYinConverter 使用介紹 ChineseChar使用案例: 多音字返回多個讀音,最后一位代表聲調,每次只能轉換一個

    2024年02月04日
    瀏覽(18)
  • JavaScript中 將阿拉伯數字轉為漢字

    在JavaScript中,可以使用以下代碼將阿拉伯數字轉換為漢字: 這段代碼中,我們首先定義了兩個數組: digits 和 units ,分別代表數字和單位。然后,我們將輸入的數字轉換成字符串,并逐個處理每一位數字。如果當前數字為0,我們不需要輸出漢字,但需要考慮上一個數字是否

    2024年02月16日
    瀏覽(30)
  • C語言——大寫字母轉小寫輸出

    C語言——大寫字母轉小寫輸出

    輸入一個大寫字母,需要輸出對應的小寫 用到的是字符類型,字符數據以ASCII碼存儲的,形式與整數的存儲形式相同 所以使用如下代碼: 會輸出65,解題關鍵就在輸出前把字符類型 + 32 即可得到對應小寫

    2024年02月05日
    瀏覽(93)
  • PTA-c語言 輸出大寫英文字母

    本題要求編寫程序,順序輸出給定字符串中所出現過的大寫英文字母,每個字母只輸出一遍;若無大寫英文字母則輸出“Not Found”。 輸入格式: 輸入為一個以回車結束的字符串(少于80個字符)。 輸出格式: 按照輸入的順序在一行中輸出所出現過的大寫英文字母,每個字母

    2024年02月04日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包