社区
C#
帖子详情
求一简单正则式,关于四舍五入的?
Radar2006
2006-07-21 04:44:10
有一字符串s,为一浮点数。不好讲,示例如下:
s 结果
20 20.0
20.4 20.4
20.6 20.6
20.13 20.1
20.15 20.2
20.13... 20.1
20.15... 20.2
最好不转换成浮点数,用正则实现。
if(Regex.IsMatch(s,@"\d*\.\d[56789]"))
{
res=怎么在小数点后一位加一?
}
在线等,谢谢!!!
...全文
401
10
打赏
收藏
求一简单正则式,关于四舍五入的?
有一字符串s,为一浮点数。不好讲,示例如下: s 结果 20 20.0 20.4 20.4 20.6 20.6 20.13 20.1 20.15 20.2 20.13... 20.1 20.15... 20.2 最好不转换成浮点数,用正则实现。 if(Regex.IsMatch(s,@"\d*\.\d[56789]")) { res=怎么在小数点后一位加一? } 在线等,谢谢!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Radar2006
2006-07-21
打赏
举报
回复
哎呀,分太少了,qyfjl(Try to improve my skills.) 兄弟下次给你补上。
qyfjl
2006-07-21
打赏
举报
回复
你想嘛,我们不管小数的第一位为单双,只要发现尾数大于等于5的,就在尾数后面加个一就行了。
diandian82
2006-07-21
打赏
举报
回复
mark
qyfjl
2006-07-21
打赏
举报
回复
换个思路去想问题,你可以先去判断最后一位是不是大于等于5,如果为TRUE就用下面这个,为FALSE就用原来哪个。
string temp = "0.01";
string s = "19.29";
decimal va = Convert.ToDecimal(s) +Convert.ToDecimal (temp);
va = Math.Round(va,1);
MessageBox.Show(va.ToString ());
mobin4211
2006-07-21
打赏
举报
回复
string s = "19.26";
decimal va = Convert.ToDecimal(s);
va = Math.Round(va,1);
MessageBox.Show(va.ToString ());
Radar2006
2006-07-21
打赏
举报
回复
不Parse成double行不?
四舍五入通过正则replace能不能实现?
-------------------------
double x=Double.Parse(s);
x=Math.Floor(x*10+0.5)/10;
return x.ToString();
-------------------------
Radar2006
2006-07-21
打赏
举报
回复
呵呵,现在正在学正则,所以看看能不能用上。
基本实现了,哪位高人还有更好的办法么?
//四舍六入五单双
static public string RoundEx(string s)
{
if(Regex.IsMatch(s,@"^[+|-]?(\d+(\.\d*)?|\d{1,2}(,\d{3})*(\.\d*)?)$"))
{
if(Regex.IsMatch(s, @"^\d*\.[02468]50*$"))
{
return Regex.Match(s,@"\d*\.[02468]").ToString();
}
else
{
double x=Double.Parse(s);
x=Math.Floor(x*10+0.5)/10;
//x=Math.Round(x,1);
return x.ToString();
}
}
else
{
return "0";
}
}
Radar2006
2006-07-21
打赏
举报
回复
国际上同用的数字修约规则:
四舍五入,但如果所要舍入的位恰好等于5时,
则看5前一位的数是奇数还是偶数,如是奇数则入,偶数则舍。
qyfjl
2006-07-21
打赏
举报
回复
string s = "19.26";
decimal va = Convert.ToDecimal(s);
va = Math.Round(va,1);
MessageBox.Show(va.ToString ());
qyfjl
2006-07-21
打赏
举报
回复
我认为不用正则就行。
先把字符串转为浮点型,再用数学方法四舍五入就行了。
带你学会使用正则表达式
正则表达式非常灵活、而且功能非常强大,它可以迅速地用极
简单
的方式达到字符串的复杂控制。而对于刚接触的人来说,正则表达式比较晦涩难懂。这门课程可以非常快速的帮助大家理解正则表达式,以及掌握如何在实际...
C#开发实例大全(基础卷).软件开发技术联盟(带详细书签) PDF 下载
实例048 对计算结果进行
四舍五入
62 实例049 商品金额的大小写转换 63 实例050 设置货币值中使用的小数位数 64 实例051 格式化输入数据为货币格式 65 实例052 开发一个进制转换器 66 3.4 日期时间格式的数据处理 67 ...
C#
110,534
社区成员
642,576
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章