using System; using System.Collections.Generic; using System.Text; namespace Xyz.Common { /// <summary> /// 轉換人民幣大小金額。 /// </summary> public class Rmb { /// <summary> /// 轉換人民幣大小金額 /// </summary> /// <param name="num">金額</param> /// <returns>返回大寫形式</returns> public static string CmycurD(decimal num) { string str1 = "零壹貳叄肆伍陸柒捌玖"; //0-9所對應的漢字 string str2 = "萬仟佰拾億仟佰拾萬仟佰拾元角分"; //數字位所對應的漢字 string str3 = ""; //從原num值中取出的值 string str4 = ""; //數字的字符串形式 string str5 = ""; //人民幣大寫金額形式 int i; //循環變量 int j; //num的值乘以100的字符串長度 string ch1 = ""; //數字的漢語讀法 string ch2 = ""; //數字位的漢字讀法 int nzero = 0; //用來計算連續的零值是幾個 int temp; //從原num值中取出的值 num = Math.Round(Math.Abs(num), 2); //將num取絕對值並四捨五入取2位小數 str4 = ((long)(num * 100)).ToString(); //將num乘100並轉換成字符串形式 j = str4.Length; //找出最高位 if (j > 15) { return "溢出"; } str2 = str2.Substring(15 - j); //取出對應位數的str2的值。如:200.55,j爲5所以str2=佰拾元角分 //循環取出每一位需要轉換的值 for (i = 0; i < j; i++) { str3 = str4.Substring(i, 1); //取出需轉換的某一位的值 temp = Convert.ToInt32(str3); //轉換爲數字 if (i != (j - 3) && i != (j - 7) && i != (j - 11) && i != (j - 15)) { //當所取位數不爲元、萬、億、萬億上的數字時 if (str3 == "0") { ch1 = ""; ch2 = ""; nzero = nzero + 1; } else { if (str3 != "0" && nzero != 0) { ch1 = "零" + str1.Substring(temp * 1, 1); ch2 = str2.Substring(i, 1); nzero = 0; } else { ch1 = str1.Substring(temp * 1, 1); ch2 = str2.Substring(i, 1); nzero = 0; } } } else { //該位是萬億,億,萬,元位等關鍵位 if (str3 != "0" && nzero != 0) { ch1 = "零" + str1.Substring(temp * 1, 1); ch2 = str2.Substring(i, 1); nzero = 0; } else { if (str3 != "0" && nzero == 0) { ch1 = str1.Substring(temp * 1, 1); ch2 = str2.Substring(i, 1); nzero = 0; } else { if (str3 == "0" && nzero >= 3) { ch1 = ""; ch2 = ""; nzero = nzero + 1; } else { if (j >= 11) { ch1 = ""; nzero = nzero + 1; } else { ch1 = ""; ch2 = str2.Substring(i, 1); nzero = nzero + 1; } } } } } if (i == (j - 11) || i == (j - 3)) { //如果該位是億位或元位,則必須寫上 ch2 = str2.Substring(i, 1); } str5 = str5 + ch1 + ch2; if (i == j - 1 && str3 == "0") { //最後一位(分)爲0時,加上“整” str5 = str5 + "整"; } } if (num == 0) { str5 = "零元整"; } return str5; } /// <summary> /// 轉換人民幣大小金額 (一個重載,將字符串先轉換成數字在調用CmycurD) /// </summary> /// <param name="num">用戶輸入的金額,字符串形式未轉成decimal</param> /// <returns></returns> public static string CmycurD(string numstr) { try { decimal num = Convert.ToDecimal(numstr); return CmycurD(num); } catch { return "非數字形式!"; } } } }
不用說大家都知道怎麼用了!
DevExpress Blazor UI組件使用了C#爲Blazor Server和Blazor WebAssembly創建高影響力的用戶體驗,這個UI自建庫提供了一套全面的原生Blazor UI組件(包括Pivot Grid、調度程序、圖
DevExpress Office File API是一個專爲C#, VB.NET 和 ASP.NET等開發人員提供的非可視化.NET庫。有了這個庫,不用安裝Microsoft Office,就可以完全自動處理Excel、Word等文檔。開
如何更好地與 AI 爲伴,做時代的先進開發者?4 月 17 日,阿里雲推出的 AI 編程助手通義靈碼與雲工開物“高校訓練營”走進西安多所高校開啓實操培訓,結合 AI 輔助編程的發展背景、通義靈碼的具體能力和應用實操,幫助在校大學生了解人工智
DevExpress WinForms擁有180+組件和UI庫,能爲Windows Forms平臺創建具有影響力的業務解決方案。DevExpress WinForms能完美構建流暢、美觀且易於使用的應用程序,無論是Office風格的界面,還
CodeMain:Visual Studio代碼自動整理插件! 地址: https://mp.weixin.qq.com/s/mtOApIRqFzOReVAhF2k1Bw FluentAssertions:C#單元測試斷言庫,讓測
MediatR是一款進程內的消息訂閱、發佈框架,可實現請求/響應、命令、查詢、通知和事件的消息傳遞,解耦了消息處理器和消息之間耦合。提供了Send方法用於發佈到單個處理程序、Publish方法發佈到多個處理程序,使用起來非常方便。目前支持
簡介: 搶紅包是我們生活常用的社交功能, 這個功能最主要的特點就是用戶的併發請求高, 在系統設計上, 可以使用非常多的辦法來扛住用戶的高併發請求, 在本文中簡要介紹使用Redis緩存中間件來實現搶紅包算法, Redis是一個在內存中基
好不容易寫好了一篇博客,現在想要把它發佈到各個平臺上供大家一起欣賞? 然後一個網站一個網站打開要發佈的博客站點,手動點創建文章,然後拷貝粘貼寫的markdown文件。 甚至有些網站還不支持markdown格式,你還需要對格式進行轉換。 每次
隨着大數據技術的快速發展,很多企業開始將Flink引入到生產環境中,以滿足日益複雜的數據處理需求。而作爲一款企業級的數據調度平臺,Apache DolphinScheduler也跟上了時代步伐,推出了對Flink任務類型的支持。 Flink
HarmonyOS實戰課程“2024鴻蒙零基礎快速實戰-仿抖音App開發(ArkTS版)”已經於今日上線至慕課網(https://coding.imooc.com/class/843.html),有致力於鴻蒙生態開發的同學們可以關注一下。
前端面試題 - 說一下原型和原型鏈? JavaScript 中,萬物皆對象,對象分爲普通對象和函數對象。 所有的函數都是函數對象(typeof f === 'function'),其他都是普通對象(typeof o === 'object'
protected function getNode(){ //$CONTROLLER_NAME = $this->_CI->router->fetch_class(); //$ACTION_NAME = $this->_
前言:授人以魚不如授人以漁.先學會用,在學原理,在學創造,可能一輩子用不到這種能力,但是不能不具備這種能力。這篇文章主要是介紹算法入門Helloword之手寫圖片識別模型java中如何實現以及部分解釋。目前大家對於人工智能-機器學習-神經網
標題:初探Java編程——開啓你的編程之旅 摘要:本文主要介紹了Java編程語言的基本概念、特點以及如何搭建Java開發環境。通過簡單的實例,讓讀者初步瞭解Java編程,爲其後續學習打下基礎。 一、Java概述 Java是一種面