作业帮 > 作文素材 > 教育资讯

math,round

来源:学生作业帮助网 编辑:作业帮 时间:2024/09/28 01:25:54 作文素材
math,round作文素材

篇一:Math.Round用法说明

Math.Round用法说明

Math类里面三个重要的数值处理方法,Math.Ceiling()是“返回大于或等于指定数字的最小整数”,也就是数学里面所谓的“进一法”;Math.Floor()则是“返回小于或等于指定数字的最大整数”,也就是无条件舍去小数

关键在于Math.Round(),这个方法重载了好多方法,就拿这个最复杂的讲一讲:

Math.Round (Decimal, Int32, )

MSDN上是这样说的:将小数值舍入到指定精度。

3.4 = Math.Round( 3.45, 1)

-3.4 = Math.Round(-3.45, 1)

篇二:Math.Round() -- c# 与 java的区别

(转)Math.Round() -- c# 与 java的区别

文章分类:Java编程

http://hi.baidu.com/yk±±??D?/blog/item/7b949acc2690595a0fb345f0.html

明明知道,java与c#在很多方面都有很多不同,但是如果让详细描述,却不一定能说出来多少。

前段时间碰见一个问题,才恍然大悟般的,明白了一条不同。

有同事的同学笔试,有道题目是 Math.Round(11.5) 与Math.Round(-11.5)的值。

一个同事是java的,直接答道,不就是12和-11么。

另外一个同事是搞.Net的,写了个程序,结果是12和-12。

咦?结果怎么不一样?

分别查了java帮助文档和MSDN帮助文档,才发现,原来,是标准不同引起的。

java的Round,是+0.5取整,所以,结果当然是12和-11了。

而.net的不同,而且描述也负责的多。在它的备注里,有这么一条说明:

此方法的行为遵循 IEEE 标准 754 的第 4 节。这种舍入有时称为就近舍入或银行家舍入。

哦,到此为止,终于明白了,为什么会不同。但是,什么又是银行家舍入呢?

找了半天,才找到解释说明:

对于0-9这10个数字来说,他们出现在某一位的几率是相等的。在金融结算中,如

果单纯的使用四舍五入,那么,入参(5-9)会比舍参(0-4)多一个,也就是说,金融机构会亏本,考虑到这种情况,也为了舍入更加公平,出现了就近舍入。既然每一位出现0-9的几率相等,那么,该位是偶数还是奇数的几率也就相等,对于舍弃位,0-4舍,6-9进没有什么疑义,主要就在于对中间数5的处理。此时,决定5是否舍弃交由它的前一位决定,如果前一位是偶,则舍弃,如果前一位是奇,则进位,如此,就实现了大致公平的舍入处理。

按照银行家舍入,考虑11.5和-11.5, 对于11.5,5前边是奇数1,故进位,结果为12;对于-11.5,变成了-12。因此,该舍入应该叫做四舍六入五向偶法

篇三:Math.Round方法真正意义上的四舍五入

Math.Round方法真正意义上的四舍五入

不能直接调用Math.Round方法的,这可和Java的不一样哦

Math.Round这个函数的解释是将值按指定的小数位数舍入,并不就是四舍五入。这种舍入有时称为就近舍入或四舍六入五成双

C# code

Math.Round(0.4) //result:0

Math.Round(0.6) //result:1

Math.Round(0.5) //result:0

Math.Round(1.5) //result:2

Math.Round(2.5) //result:2

Math.Round(3.5) //result:4

Math.Round(5.5) //result:6

Math.Round(6.5) //result:6

Math.Round(8.5) //result:8

Math.Round(9.5) //result:10

可以看出并不是四舍五入的

其实在 VB, VBScript, C#, J#, T-SQL 中 Round 函数都是采用 Banker's rounding(银行家舍入)算法,即四舍六入五取偶。事实上这也是 IEEE 规定的舍入标准。因此所有符合 IEEE 标准的语言都应该是采用这一算法的。

请调用 Math.Round(Decimal, MidpointRounding) 重载!~哦,原来还有重载的方法可用,MidpointRounding在两个数字之间时如何舍入的规范,规范MidpointRounding中它有2个成员,一个是ToEven还有个是AwayFromZero。

C# code

//四舍五入 Math.Round(0.5,MidpointRounding.AwayFromZero)

篇四:Java Math的 floor,round和ceil的总结

floor 返回不大于的最大整数

round 则是4舍5入的计算,入的时候是到大于它的整数(当-1.5时可见,四舍五入后得到的结果不是我们期待的,解决办法是先对他取绝对值,然后在用round方法)

math round

round方法,它表示“四舍五入”,算法为Math.floor(x+0.5),即将原来的数字加上0.5后再向下取整,所以,Math.round(11.5)的结果为12,Math.round(-11.5)的结果为-11。

ceil 则是不小于他的最小整数

看例子

1.4

1.5

1.6

-1.4

-1.5

-1.6 Math.floor 1 1 1 -2 -2 -2 Math.round 1 2 2 -1 -1 -2 Math.ceil 2 2 2 -1 -1 -1

测试程序如下:

[java] view plaincopyprint?

1. public class MyTest {

2. public static void main(String[] args) {

3. double[] nums = { 1.4, 1.5, 1.6, -1.4, -1.5, -1.6 };

4. for (double num : nums) {

5. test(num);

6. }

7. }

8.

9. private static void test(double num) {

10. System.out.println("Math.floor(" + num + ")=" + Math.floor(num));

11. System.out.println("Math.round(" + num + ")=" + Math.round(num));

12. System.out.println("Math.ceil(" + num + ")=" + Math.ceil(num));

13. }

14.}

运行结果

Math.floor(1.4)=1.0 Math.round(1.4)=1 Math.ceil(1.4)=2.0 Math.floor(1.5)=1.0 Math.round(1.5)=2 Math.ceil(1.5)=2.0 Math.floor(1.6)=1.0 Math.round(1.6)=2 Math.ceil(1.6)=2.0 Math.floor(-1.4)=-2.0 Math.round(-1.4)=-1 Math.ceil(-1.4)=-1.0 Math.floor(-1.5)=-2.0 Math.round(-1.5)=-1 Math.ceil(-1.5)=-1.0 Math.floor(-1.6)=-2.0 Math.round(-1.6)=-2 Math.ceil(-1.6)=-1.0

篇五:math类使用方法

Math.PI 记录的圆周率

Math.E 记录e的常量

Math中还有一些类似的常量,都是一些工程数学常用量。

Math.abs() 求绝对值

Math.sin() 正弦函数

Math.asin() 反正弦函数

Math.cos() 余弦函数

Math.acos() 反余弦函数

Math.tan() 正切函数

Math.atan() 反正切函数

Math.atan2() 商的反正切函数

Math.toDegrees() 弧度转化为角度

Math.toRadians() 角度转化为弧度

Math.ceil() 得到不小于某数的最大整数

Math.floor() 得到不大于某数的最大整数

Math.remainder() 求余

Math.max() 求两数中最大

Math.min() 求两数中最小

Math.sqrt() 求开方

Math.pow() 求某数的任意次方,抛出ArithmeticException处理溢出异常 Math.exp() 求e的任意次方

Math.log10() 以10为底的对数

Math.log() 自然对数

Math.rint() 求距离某数最近的整数(可能比某数大,也可能?a href="http://www.zw2.cn/zhuanti/guanyurenzuowen/" target="_blank" class="keylink">人。?/p>

Math.round() 同上,返回int型或者long型(上一个函数返回double型) Math.random() 返回0与1之间的一个随机数

作文素材