值擴展(將小數(shù)值按指定的小數(shù)位數(shù)舍入))
系列文章C#底層庫–萬能進制轉(zhuǎn)換器自定義有序字符支持任意進制本文鏈接https://blog.csdn.net/youcheng_ge/article/details/130444724C#底層庫–StringExtension字符串?dāng)U展類本文鏈接https://blog.csdn.net/youcheng_ge/article/details/129520428C#底層庫–MySQL數(shù)據(jù)庫訪問操作輔助類推薦閱讀本文鏈接https://blog.csdn.net/youcheng_ge/article/details/126886379C#底層庫–SQLBuilder構(gòu)建類自研ORM本文鏈接https://blog.csdn.net/youcheng_ge/article/details/129179216C#底層庫–XML配置參數(shù)讀寫輔助類推薦閱讀本文鏈接https://blog.csdn.net/youcheng_ge/article/details/129175304C#底層庫–數(shù)據(jù)庫類型與程序類型轉(zhuǎn)換器本文鏈接https://blog.csdn.net/youcheng_ge/article/details/128817610C#底層庫–文件上傳輔助類本文鏈接https://blog.csdn.net/youcheng_ge/article/details/128817487C#底層庫–RegexHelper正則表達式輔助類本文鏈接https://blog.csdn.net/youcheng_ge/article/details/109745286C#底層庫–程序日志記錄類本文鏈接https://blog.csdn.net/youcheng_ge/article/details/124187709C#底層庫–排序算法幫助類本文鏈接https://blog.csdn.net/youcheng_ge/article/details/124495730C#底層庫–SQLite的使用輕量、單擊數(shù)據(jù)庫本文鏈接https://blog.csdn.net/youcheng_ge/article/details/123666958C#底層庫–獲取文件版本和MD5值本文鏈接https://blog.csdn.net/youcheng_ge/article/details/112513871C#底層庫–文件操作類文件重命名、目錄移動、字節(jié)流轉(zhuǎn)換本文鏈接https://blog.csdn.net/youcheng_ge/article/details/126887161C#底層庫–Excel數(shù)據(jù)讀取類可讀加密表格本文鏈接https://blog.csdn.net/youcheng_ge/article/details/126887445C#底層庫–隨機數(shù)生成器本文鏈接https://blog.csdn.net/youcheng_ge/article/details/126888812C#底層庫–CSV和DataTable相互轉(zhuǎn)換本文鏈接https://blog.csdn.net/youcheng_ge/article/details/128804367C#底層庫–JSON使用教程_詳細(xì)序列化、反序列化、轉(zhuǎn)DataTable本文鏈接https://blog.csdn.net/youcheng_ge/article/details/128805705C#底層庫–cookie使用教程本文鏈接https://blog.csdn.net/youcheng_ge/article/details/128816347C#底層庫–Session操作輔助類本文鏈接https://blog.csdn.net/youcheng_ge/article/details/128817096C#底層庫–Image圖片操作類本文鏈接https://blog.csdn.net/youcheng_ge/article/details/128805298C#底層庫–圖片增加水印輔助類本文鏈接https://blog.csdn.net/youcheng_ge/article/details/128817184C#底層庫–數(shù)據(jù)實體類本文鏈接https://blog.csdn.net/youcheng_ge/article/details/128816638C#底層庫–網(wǎng)絡(luò)通信幫助類HTTP本文鏈接https://blog.csdn.net/youcheng_ge/article/details/126886697文章目錄系列文章前言一、底層庫作用二、底層庫源碼三、使用方法四、項目樣例五、資源鏈接前言【C#底層庫】?拒絕重復(fù)造輪子本專欄致力于構(gòu)建一套企業(yè)級通用組件庫將項目中高頻使用的功能如數(shù)據(jù)庫訪問、加密解密、HTTP通信、Office操作等進行深度封裝與單元測試形成穩(wěn)定可靠的“開發(fā)底座”。您無需關(guān)心復(fù)雜的底層實現(xiàn)只需一行調(diào)用代碼即可解決繁瑣的業(yè)務(wù)支撐問題。專欄持續(xù)集成與優(yōu)化涵蓋MySQL、日志、Session、文件處理等核心模塊。關(guān)注我讓復(fù)雜的功能實現(xiàn)變得簡單高效有任何問題歡迎私信交流一、底層庫作用DecimalUtil數(shù)值擴展類將小數(shù)值按指定的小數(shù)位數(shù)舍入、將小數(shù)值按指定的小數(shù)位數(shù)截取、檢查數(shù)值小數(shù)位超出指定長度拋出異常信息.二、底層庫源碼創(chuàng)建類DecimalUtil.cs復(fù)制以下代碼。usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceCommon{/// summary/// 數(shù)值擴展/// /summarypublicstaticclassDecimalUtil{/// summary/// 將小數(shù)值按指定的小數(shù)位數(shù)舍入/// 解決SAP接口自動將3位小數(shù)后加0轉(zhuǎn)為4位小數(shù)報錯Server Error的問題/// /summary/// param named要舍入的小數(shù)/param/// param namedecimals返回值中的小數(shù)位數(shù)默認(rèn)3/param/// returns/returnspublicstaticdecimalAppRound(thisdecimald,intdecimals3){varmultiple(decimal)Math.Pow(10,decimals);//竟然帶上MidpointRounding.AwayFromZero的四舍五入才是對的varresultMath.Round(d*multiple,MidpointRounding.AwayFromZero)/multiple;returnresult;}/// summary/// 將小數(shù)值按指定的小數(shù)位數(shù)舍入/// 解決SAP接口自動將3位小數(shù)后加0轉(zhuǎn)為4位小數(shù)報錯Server Error的問題/// /summary/// param named要舍入的小數(shù)/param/// param namedecimals返回值中的小數(shù)位數(shù)默認(rèn)3/param/// returns/returnspublicstaticdoubleAppRound(thisdoubled,intdecimals3){varmultipleMath.Pow(10,decimals);//竟然帶上MidpointRounding.AwayFromZero的四舍五入才是對的varresultMath.Round(d*multiple,MidpointRounding.AwayFromZero)/multiple;returnresult;}/// summary/// 將小數(shù)值按指定的小數(shù)位數(shù)截取/// /summary/// param named要截取的小數(shù)/param/// param namedecimals返回值中的小數(shù)位數(shù)/param/// returns/returnspublicstaticdecimalAppCut(thisdecimald,intdecimals){varstrDecimald.ToString();varindexstrDecimal.IndexOf(.);if(index-1||strDecimal.Lengthindexdecimals1){strDecimalstring.Format({0:Fdecimals},d);}else{varlengthindex;if(decimals!0){lengthindexdecimals1;}strDecimalstrDecimal.Substring(0,length);}returndecimal.Parse(strDecimal);}/// summary/// 將小數(shù)值按指定的小數(shù)位數(shù)截取/// /summary/// param named要截取的小數(shù)/param/// param namedecimals返回值中的小數(shù)位數(shù)/param/// returns/returnspublicstaticdoubleAppCut(thisdoubled,intdecimals){varstrDecimald.ToString();varindexstrDecimal.IndexOf(.);if(index-1||strDecimal.Lengthindexdecimals1){strDecimalstring.Format({0:Fdecimals},d);}else{varlengthindex;if(decimals!0){lengthindexdecimals1;}strDecimalstrDecimal.Substring(0,length);}returndouble.Parse(strDecimal);}/// summary/// 檢查數(shù)值小數(shù)位超出指定長度拋出異常信息/// /summary/// param named數(shù)值/param/// param namedecimals小數(shù)位長度默認(rèn)3位/parampublicstaticvoidCheckDecimalPlaces(thisdecimald,intdecimals3){if(d0)return;vardStrd.ToString();vardStrArrdStr.Split(newstring[]{.},StringSplitOptions.RemoveEmptyEntries);if(dStrArr.Length1dStrArr[1].Lengthdecimals)thrownewException($操作量zxl6ubaz小數(shù)位不能大于{decimals}位請確認(rèn));}}}三、使用方法無四、項目樣例無五、資源鏈接無