今天遇到一个展示酒店价格的需求,觉得是要显示成“¥0.00”样式的,就做个小随笔,将字符串装换成带2位小数的浮点数
代码如下
1 string aaa = "120"; 2 string amount = string.Empty; 3 if (!string.IsNullOrEmpty(aaa) && (Regex.IsMatch(aaa, @"^[1-9]d*|0$") || Regex.IsMatch(aaa, @"^[1-9]d*.d*|0.d*[1-9]d*$"))) 4 amount = Convert.ToDecimal(aaa).ToString("F2"); 5 else 6 { 7 amount = "0.00"; 8 }
先判断字符串是否为空,再用正则表达式判断字符串时候可以转换为浮点数,不然下面的convert.todecimal函数会报错。这个正则表达式还真不好找,只好改成两个或语句,一个判断是否可以转成非负整数和正浮点数,反正下面的convert转换这种字符串都可以。如果有可以直接判断字符串可以转换成数字的,不管它带不带小数点的,可以告诉我。