C#中实现对数值或字符串保留指定小数点后几位的操作

一、实现对数值或字符串保留指定小数点后几位的操作核心代码如下:

/***
*	Title:  "同济堂" 项目
*	主题 : 数值或者字符串的操作
*	Description: 
*	功能 : 
*	Date:  2020-03-04
*	Version:  1.2
*	Author:  Coffee
*	Modify Recoder:  
*/

using System.Collections;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using UnityEngine;

namespace Kernal
{
    public class NumberOrStringOPC
    {
        #region   去除字符串中的数字

        /// 
        /// 去掉字符串中的数字
        /// 
        /// 
        /// 返回去除了数字的字符串
        public static string RemoveNumber(string key)
        {
            if (!string.IsNullOrEmpty(key))
            {
                return System.Text.RegularExpressions.Regex.Replace(key, @"\d", "");
            }
            return null;
        }

        /// 
        /// 去掉字符串中的非数字
        /// 
        /// 需要处理的字符串
        /// 返回去除了非数字的字符串
        public static string RemoveNotNumber(string str)
        {
            if (!string.IsNullOrEmpty(str))
            {
                return System.Text.RegularExpressions.Regex.Replace(str, @"[^\d]*", "");
            }
            return null;
        }
        #endregion

        #region   保留数字或者字符串小数点后的指定位数
        /// 
        /// 保留字符串中的小数点后两位
        /// 
        /// 需要保留的字符串
        /// 保留小数点后的位数【默认是两位】
        /// 返回只有小数点后两位的字符串
        public static string KeepTwoDecimal(string value, int keepDecimalLength = 2)
        {
            string tmp = string.Empty;
            try
            {
                if (!string.IsNullOrEmpty(value) && keepDecimalLength > 0)
                {
                    string[] str = value.Split('.');
                    string str2 = ".00";
                    if (value.IndexOf('.') > 0)
                    {
                        if (!string.IsNullOrEmpty(str[1]))
                        {
                            str2 = "." + str[1].Substring(0, keepDecimalLength);
                        }
                    }
                    tmp = str[0] + str2;
                }
            }
            catch (System.Exception)
            {
                tmp = value;
                return tmp;
            }

            return tmp;
        }

        /// 
        /// 保留字符串中的小数点后两位
        /// 
        /// 需要保留的数值
        ///  保留小数点后的位数【默认是两位】
        /// 返回只有小数点后两位的字符串
        public static string KeepTwoDecimal(float value, int keepDecimalLength = 2)
        {
            string tmp = string.Empty;
            try
            {
                if (value > 0 && keepDecimalLength > 0)
                {
                    string strFormat = "{0:N" + keepDecimalLength + "}";
                    tmp = string.Format(strFormat, value);
                }
            }
            catch (System.Exception)
            {
                tmp = value.ToString();
                return tmp;
            }


            return tmp;
        }

        #endregion

        #region   提取括号里面的内容
        /// 
        /// 提取小括号、中括号、大括号里面的字符串内容
        /// 
        /// 需要处理的字符串
        /// 括号的类型【0表示小括号1表示中括号2表示大括号】
        /// 
        public static string GetBracketsContents(string strNeedOPC, int bracketsType = 0)
        {
            string strTmp = string.Empty;
            if (!string.IsNullOrEmpty(strNeedOPC))
            {
                switch (bracketsType)
                {
                    case 0:
                        strTmp = Regex.Replace(strNeedOPC, @"(.*\()(.*)(\).*)", "$2");//获取小括号()里面的内容
                        break;
                    case 1:
                        Regex rex = new Regex(@"(?i)(?<=\[)(.*)(?=\])");//获取中括号[]里面的内容正则规则
                        strTmp = rex.Match(strNeedOPC).Value;
                        break;
                    case 2:
                        strTmp = Regex.Match(strNeedOPC, @"\{(.*)\}", RegexOptions.Singleline).Groups[1].Value;//获取大括号{}里面的内容
                        break;
                    default:
                        break;
                }
            }

            return strTmp;
        }

        #endregion

    }//Class_end
}

二、使用方法

①首先引用命名空间

using Kernal;

②调用方法如下 

  //这是格式化字符串保留小数点后3位的调用方法
  string str = "68.233145454";
  Debug.Log("需要格式化的字符串初始值为:"+str);
  string tmp =NumberOrStringOPC.KeepPointDecimal(str,3);
  Debug.Log("------格式化的之后值为:------" + tmp);


 //这是格式化数值保留小数点后5位的调用方法
 float str = 68.233145454F;
 Debug.Log("格式化的初始值为:" + str);
 string tmp = NumberOrStringOPC.KeepPointDecimal(str, 5);
 Debug.Log("------格式化的之后值为:------" + tmp);

三、运行结果如下

C#中实现对数值或字符串保留指定小数点后几位的操作_第1张图片

 

 

 

 

你可能感兴趣的:(C#基,字符串)