[C#]将千分位字符串转换成数字

时间:2021-11-13 05:48:32

关键代码:

        /// <summary>
        /// 将千分位字符串转换成数字
        /// 说明:将诸如"–111,222,333的千分位"转换成-111222333数字
        /// 若转换失败则返回-1
        /// </summary>
        /// <param name="thousandthStr">需要转换的千分位</param>
        /// <returns>数字</returns>
        public static int ParseThousandthString(this string thousandthStr)
        {
            int _value = -1;
            if (!string.IsNullOrEmpty(thousandthStr))
            {
                try
                {
                    _value = int.Parse(thousandthStr, NumberStyles.AllowThousands | NumberStyles.AllowDecimalPoint | NumberStyles.AllowLeadingSign);
                }
                catch (Exception ex)
                {
                    _value = -1;
                    Debug.WriteLine(string.Format("将千分位字符串{0}转换成数字异常,原因:{0}", thousandthStr, ex.Message));
                }
            }
            return _value;
        }

单元测试:

        [TestMethod()]
        public void ParseThousandthStringTest()
        {
            string _thousandthStr = "-111,222,333";
            int _expected1 = -111222333;
            int _actual1 = StringToolV2.ParseThousandthString(_thousandthStr);
            Assert.AreEqual(_expected1, _actual1);
        }

希望有所帮助!