四舍五入的问题 四舍五入是怎么判断的啊,好象有人说过是+0.5取整?不太明白,有人可以详细说下么。还有不同精度转换是什么原则呢如:四舍五入结果,1.5,-1.5float f = -123.567f;int i=(int)f;i是多少 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 float f = -123.567f; int i=(int)f; i=-123 float f = -123.567f; Math.Round(f); 取整是去掉小数部分。(不管小数部分是多少,都去掉。)例:(int)1.9的结果和(int)1.1的结果是一样的都是1四舍五入是小数部分大于或等于0.5,则进1,否则舍去。例:1.9四舍五入结果是2,而1.1四舍五入结果是1所谓+0.5取整是指,把原来的数加上0.5,在取整。是四舍五入的一种求法。例:1.9做四舍五入,先加0.5,结果是2.4,再对2.4取整结果2。1.1做四舍五入,1.1+0.5=1.6,1.6取整为1。不知道lz明白了。 Math.Round(-1.5) = -2; 你那么肯定?呵呵。这是编译器,不能想当然。。C#:Math.Round(-1.5) = -2; JAVA:Math.Round(-1.5) = -1; 其实C#中的四舍五入是用的银行家舍入,比如说:Math.Round(1.125,2)=1.12这个规则是4及以下舍,6及以上入,5如果前一位是奇数则入否则舍。 再举几个例子:Math.Round(-1.5)=-2Math.Round(-2.5)=-2Math.Round(-3.5)=-4 啊,感谢!我另外查了下,如果想不管奇偶都是遇5就进,可以Math.Round(-2.5,MidpointRounding.AwayFromZero) 1),public static decimal Round(decimal d);这是函数原形。返回值:最接近 d 参数的整数。如果 d 在两个整数的中间,其中之一按定义是偶数,另一个是奇数,则返回偶数。例:Math.Round(4.4); //Returns 4.0. Math.Round(4.5); //Returns 4.0. Math.Round(4.6); //Returns 5.0.2)public static decimal Round(decimal d, int decimals);返回值: 精度等于 decimals 的、最接近 d 的数字。如果 d 位于两个数字的中间,其中一个为偶数,另一个为奇数,则返回偶数。如果 d 的精度小于 decimals,那么返回 d 而不做更改。例:Math.Round(3.44, 1); //Returns 3.4.Math.Round(3.45, 1); //Returns 3.4.Math.Round(3.46, 1); //Returns 3.5.这是C#版的。在帮助里找到的说明。和大家上学时学的数学上的四舍五入有点区别。备注此方法的行为遵循 IEEE 标准 754 的第 4 节。这种舍入有时称为就近舍入或银行家舍入。 汉字转换十六进制数的格式 C# Socket 连接问题,请高手进来帮帮忙 关于RadioButtonList 的 AutoPostBack 属性 ☆★winform访问第三方的webservice中得到了返回的xml,其中中文乱码的解决方式(HTML中能正常显示)★☆ C#怎样发布?? 如何做通用的 WebSerivces 函数的调用? 大神的都进来 在线等----,请指教 [网络编程问题] 如何编程设置本机IP 关于c#程序员的前途。 数组排序问题!!! repeater控件的显示不同颜色的问题
int i=(int)f;
i=-123
四舍五入是小数部分大于或等于0.5,则进1,否则舍去。例:1.9四舍五入结果是2,而1.1四舍五入结果是1
所谓+0.5取整是指,把原来的数加上0.5,在取整。是四舍五入的一种求法。例:1.9做四舍五入,先加0.5,结果是2.4,再对2.4取整结果2。
1.1做四舍五入,1.1+0.5=1.6,1.6取整为1。
不知道lz明白了。
呵呵。这是编译器,不能想当然。。
C#:Math.Round(-1.5) = -2;
JAVA:Math.Round(-1.5) = -1;
Math.Round(1.125,2)=1.12这个规则是4及以下舍,6及以上入,5如果前一位是奇数则入否则舍。
Math.Round(-1.5)=-2
Math.Round(-2.5)=-2
Math.Round(-3.5)=-4
我另外查了下,如果想不管奇偶都是遇5就进,可以Math.Round(-2.5,MidpointRounding.AwayFromZero)
返回值:最接近 d 参数的整数。如果 d 在两个整数的中间,其中之一按定义是偶数,另一个是奇数,则返回偶数。
例:Math.Round(4.4); //Returns 4.0.
Math.Round(4.5); //Returns 4.0.
Math.Round(4.6); //Returns 5.0.
2)public static decimal Round(decimal d, int decimals);
返回值:
精度等于 decimals 的、最接近 d 的数字。如果 d 位于两个数字的中间,其中一个为偶数,另一个为奇数,则返回偶数。如果 d 的精度小于 decimals,那么返回 d 而不做更改。
例:
Math.Round(3.44, 1); //Returns 3.4.
Math.Round(3.45, 1); //Returns 3.4.
Math.Round(3.46, 1); //Returns 3.5.
这是C#版的。在帮助里找到的说明。和大家上学时学的数学上的四舍五入有点区别。
备注
此方法的行为遵循 IEEE 标准 754 的第 4 节。这种舍入有时称为就近舍入或银行家舍入。