加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 字符串分数加倍

发布时间:2020-12-15 04:14:00 所属栏目:百科 来源:网络整理
导读:我需要一个函数来解析用户输入的数字,以加倍.我无法做任何客户端或改变输入的方式. Input | Desired Output"9" | 9"9 3/4" | 9.75" 9 1/ 2 " | 9.5"9 .25" | 9.25"9,000 1/3" | 9000.33"1/4" | .25 我看到这个post,但它使用Python,我只是想知道是否有人知道
我需要一个函数来解析用户输入的数字,以加倍.我无法做任何客户端或改变输入的方式.
Input       | Desired Output
"9"         | 9
"9 3/4"     | 9.75
" 9  1/ 2 " | 9.5
"9 .25"     | 9.25
"9,000 1/3" | 9000.33
"1/4"       | .25

我看到这个post,但它使用Python,我只是想知道是否有人知道任何花哨的C#的方式来处理这个,我花时间写我自己的.

解决方法

我会用这个正则表达式:
Regex re = new Regex(@"^s*(d+)(s*.(d*)|s+(d+)s*/s*(d+))?s*$");
string str = " 9  1/ 2 ";
Match m = re.Match(str);
double val = m.Groups[1].Success ? double.Parse(m.Groups[1].Value) : 0.0;

if(m.Groups[3].Success) {
    val += double.Parse("0." + m.Groups[3].Value);
} else {
    val += double.Parse(m.Groups[4].Value) / double.Parse(m.Groups[5].Value);
}

未经测试,至今,但我认为它应该工作.

Here’s a demo和here’s another demo.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读