社区
C#
帖子详情
Decimal.Round()方法的问题
风轻扬
2003-11-13 12:46:10
在.net Framework 1.0下,Decimal.Round(Decimal.Parse(1)/Decimal.Parse(3),2)*100=33,而在1.1下却等于33.00,不知道为什么,那位高手知道?
...全文
435
12
打赏
收藏
Decimal.Round()方法的问题
在.net Framework 1.0下,Decimal.Round(Decimal.Parse(1)/Decimal.Parse(3),2)*100=33,而在1.1下却等于33.00,不知道为什么,那位高手知道?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
l_clove
2003-11-14
打赏
举报
回复
提示一下:SQL Server中的Decimal可以指定小数位。
l_clove
2003-11-14
打赏
举报
回复
对呀,我也找了半天。
风轻扬
2003-11-14
打赏
举报
回复
没有人知道吗?
风轻扬
2003-11-14
打赏
举报
回复
我这参与除法运算的数都是通过Count(*)从数据库查出来的,并不是数据库中某个int型字段的值,所以SQL Server中的函数是肯定不行了,我要是把2指定成0,结果也就成0了,因为当初计算出来的是0.33333...,现在四舍五入到保留0个小数,不就成0了吗。
有没有微软的MVP,解释一下呗,顺便给个Answer,知道当看到100.0这个统计结果后感觉如何吗?考,气愤,本来在1.0下这种现象根本就不存在。
brightheroes
2003-11-13
打赏
举报
回复
就是微软修正了一下精度
这还算好的
其实1.1和1.0的兼容性.....
呵呵
sea026
2003-11-13
打赏
举报
回复
Kao
decimal 构造函数居然没有固定小数位的,BS微软。
dotnba
2003-11-13
打赏
举报
回复
Decimal.Round(Decimal.Parse("1") * 100 / Decimal.Parse("3"),0)
sea026
2003-11-13
打赏
举报
回复
我错了,这时你的Decimal小数都是4位了。
sea026
2003-11-13
打赏
举报
回复
>如果我把括号中的2改成4,就变成了33.3300
你试了再说吧!
^_^
l_clove
2003-11-13
打赏
举报
回复
Decimal.ToInt()...
--------------------------
学习一下。
l_clove
2003-11-13
打赏
举报
回复
1.1确实是33.00
--------------------------
学习一下。
风轻扬
2003-11-13
打赏
举报
回复
修正了一下精度?可我的意图就是要得到33,而不是33.00啊,精度再高没有满足我的要求,还不是一样白扯,如果我把括号中的2改成4,就变成了33.3300,我就想要33.33啊,像33变成33.00我可以强制转换成int型,可33.33变成33.3300我怎么转换成33.33啊,微软到底这么修正是为了什么?有什么解决办法吗?
C#中
decimal
保留2位有效小数的实现
方法
在C#的数字运算过程中,有时候针对十进制
decimal
类型的计算需要保留2位有效小数,针对
decimal
变量保留2位有效小数有多种
方法
,可以使用Math.Round
方法
以及ToString先转换为字符串等操作来实现。 (1)
方法
一:使用C#...
decimal
.round的转换指定位数
decimal
用法
里面的3个参数分别表示:要转换的值,保留几位
decimal
小数,计算的
方法
计算的
方法
包含 : MidpointRounding.ToEven 称为就近舍入或四舍六入五成双,后面是5的情况比较特殊,如果前面是奇数,则升上去,反之,则...
decimal
.Round
decimal
.Round(xx,
decimal
Pos, MidpointRounding.ToEven);
decimal
.Round(xx,
decimal
Pos, MidpointRounding.AwayFromZero); AwayFromZero, 就是常用的四舍五入. ToEven, 就比较特别,称为就近舍入或四舍...
decimal
.Round(
decimal
.Parse("0.3333333"),2)
1、Math.Round(0.333333,2);//按照四舍五入的国际标准 2、 double dbdata=0.335333; string str1=String.Format("{0:F}",dbdata);//默认为保留两位 3、 float i=0.333333; int j=(int)(i * 100); i...
浮点数计算精度
问题
decimal
.js
js计算会转为二进制进行计算,采用IEEE 754标准双精度浮点(64),64位中1位...
Decimal
.ROUND_DOWN) //3.45(舍入模式 向上0 向下1 四舍五入)保留多少位有效位数(小数位不会补0 计算有效位数)y.sd() //3有效位数。
C#
110,536
社区成员
642,578
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章