任意长度的小数字符串的四舍五入

来源:互联网 发布:淘宝纯棉尿布 编辑:程序博客网 时间:2024/05/16 02:52

看代码吧,主要是利用正则处理,这里是保留一位小数,从“16666666.6666”转换为“1666.7万”



using System.Text.RegularExpressions;namespace ConsoleApplication1{    class Program    {        static void Main(string[] args)        {            string str1 = "1677732424.48";//一般长的            string str2 = "1677211251251616735554.48";//二般长的            string str3 = "1677732251251516624.4825125125125";//很长的            //更长的            Console.WriteLine(Test(str1));            Console.WriteLine(Test(str2));            Console.WriteLine(Test(str3));            Console.Read();        }        static string Test(string input)        {            Regex regex = new Regex(@"^(?<wy>\d+)(?<qy>\d{4})+(|(.\d+))$", RegexOptions.IgnoreCase);            Match m = regex.Match(input);            if (m.Success)            {                int qy = (int.Parse(m.Groups["qy"].Value) + 500) / 1000;                return string.Format("{0}.{1}", m.Groups["wy"].Value, qy);            }            else                throw new Exception("不是有效的字符串");        }    }}