C#中的取整函数

先放百度的

Math.Ceiling();向上取整

Math.Ceiling()向上取整; d = 4.56789 string res = Math.Ceiling(Convert.ToDecimal(d)).ToString(); res=5
Math.Floor()向下取整 ;string res = Math.Floor(Convert.ToDouble(d)).ToString(); es=4
Math.Round是"就近舍入",当要舍入的是5时与"四舍五入"不同(取偶数),如:
Math.Round(0.5,0)=0 

floor 和 ceiling是math unit 里的函数,使用前要先 Uses Math。
trunc 和 round 是system unit 里的函数,缺省就可以用。
floor 直接往小的取,比如 floor(-123.55)=-124,floor(123.55)=123
trunc 直接切下整数,比如 trunc(-123.55)=-123, floor(123.55)=123
ceil 直接往大的取,比如 ceil(-123.55)=-123, ceil(123.55)=124
round 计算四舍五入,比如 round(-123.55)=-124,round(123.55)=124

  百度知道https://zhidao.baidu.com/question/91857578.html

看了之后由于和其他的网页内容有个别地方好像不符,决定自己实验

实验结果,其他几个没找到函数

从表中可以看出int向0取整,或者说是提取整数部分

Ceiling 向正无穷方向取整

Floor 向负无穷方向取整

Round四舍六入,对于5采取奇进偶不进(朝正无穷方向)

如果有人会使用其他函数或者有什么意见,欢迎留言

为了方便大家测试,留下测试代码

double n;
            n = 3.4;
            Console.WriteLine($"测试数据为:{n}");
            Console.WriteLine($"Math.Ceiling结果为:{Math.Ceiling(n)}");
            Console.WriteLine($"Math.Floor结果为:{Math.Floor(n)}");
            Console.WriteLine($"Math.Round结果为:{Math.Round(n)}");
            Console.WriteLine($"强制int结果为:{(int)n}");
            //Console.WriteLine($"trunc:{Math.(n)}")
            n = 3.6;
            Console.WriteLine($"测试数据为:{n}");
            Console.WriteLine($"Math.Ceiling结果为:{Math.Ceiling(n)}");
            Console.WriteLine($"Math.Floor结果为:{Math.Floor(n)}");
            Console.WriteLine($"Math.Round结果为:{Math.Round(n)}");
            Console.WriteLine($"强制int结果为:{(int)n}");

            n = 3.5;
            Console.WriteLine($"测试数据为:{n}");
            Console.WriteLine($"Math.Ceiling结果为:{Math.Ceiling(n)}");
            Console.WriteLine($"Math.Floor结果为:{Math.Floor(n)}");
            Console.WriteLine($"Math.Round结果为:{Math.Round(n)}");
            Console.WriteLine($"强制int结果为:{(int)n}");

            n = 4.5;
            Console.WriteLine($"测试数据为:{n}");
            Console.WriteLine($"Math.Ceiling结果为:{Math.Ceiling(n)}");
            Console.WriteLine($"Math.Floor结果为:{Math.Floor(n)}");
            Console.WriteLine($"Math.Round结果为:{Math.Round(n)}");
            Console.WriteLine($"强制int结果为:{(int)n}");

            n = -3.4;
            Console.WriteLine($"测试数据为:{n}");
            Console.WriteLine($"Math.Ceiling结果为:{Math.Ceiling(n)}");
            Console.WriteLine($"Math.Floor结果为:{Math.Floor(n)}");
            Console.WriteLine($"Math.Round结果为:{Math.Round(n)}");
            Console.WriteLine($"强制int结果为:{(int)n}");

            n = -3.6;
            Console.WriteLine($"测试数据为:{n}");
            Console.WriteLine($"Math.Ceiling结果为:{Math.Ceiling(n)}");
            Console.WriteLine($"Math.Floor结果为:{Math.Floor(n)}");
            Console.WriteLine($"Math.Round结果为:{Math.Round(n)}");
            Console.WriteLine($"强制int结果为:{(int)n}");

            n = -3.5;
            Console.WriteLine($"测试数据为:{n}");
            Console.WriteLine($"Math.Ceiling结果为:{Math.Ceiling(n)}");
            Console.WriteLine($"Math.Floor结果为:{Math.Floor(n)}");
            Console.WriteLine($"Math.Round结果为:{Math.Round(n)}");
            Console.WriteLine($"强制int结果为:{(int)n}");

            n = -4.5;
            Console.WriteLine($"测试数据为:{n}");
            Console.WriteLine($"Math.Ceiling结果为:{Math.Ceiling(n)}");
            Console.WriteLine($"Math.Floor结果为:{Math.Floor(n)}");
            Console.WriteLine($"Math.Round结果为:{Math.Round(n)}");
            Console.WriteLine($"强制int结果为:{(int)n}");

            Console.ReadKey();

当然大家也可以枚举值,然后使用foreach进行测试。

原文地址:https://www.cnblogs.com/hgyzm/p/11847058.html

时间: 2024-10-16 05:36:40

C#中的取整函数的相关文章

SQL中的取整函数、取小数

取整函数: 1.trunc(value,precision)按精度(precision)截取某个数字,不进行舍入操作.返回截尾到y位小数的x值:trunc(x,[y]): select trunc(23.33) ------------ 23 2.round(value,precision)根据给定的精度(precision)输入数值[四舍五入取整].返回舍入到小数点右边y位的x值:round(x,[y]): select round(23.33) ------------ 23 3.ceili

【转】SQL中的取整函数FLOOR、ROUND、CEIL、TRUNC、SIGN

--------------------------------------------------------------------------1 trunc(value,precision)按精度(precision)截取某个数字,不进行舍入操作.2 round(value,precision)根据给定的精度(precision)输入数值.3 ceil (value) 产生大于或等于指定值(value)的最小整数.4 floor(value)与 ceil()相反,产生小于或等于指定值(va

MATLAB中取整函数(fix, floor, ceil, round)的使用

MATLAB取整函数 1)fix(x) : 截尾取整. >> fix( [3.12 -3.12]) ans = 3    -3(2)floor(x):不超过x 的最大整数.(高斯取整) >> floor( [3.12 -3.12]) ans = 3    -4 (3)ceil(x) : 大于x 的最小整数 >> ceil( [3.12 -3.12]) ans = 4    -3 (4)四舍五入取整 >> round(3.12 -3.12) ans = 0 &

paper 68 :MATLAB中取整函数(fix, floor, ceil, round)的使用

MATLAB取整函数 1)fix(x) : 截尾取整. >> fix( [3.12 -3.12]) ans =      3    -3 (2)floor(x):不超过x 的最大整数.(高斯取整) >> floor( [3.12 -3.12]) ans =      3    -4 (3)ceil(x) : 大于x 的最小整数 >> ceil( [3.12 -3.12]) ans =      4    -3 (4)四舍五入取整 >> round(3.12

delphi的取整函数round、trunc、ceil和floor

首先引入math单元 uses math; 1.Round(四舍六入五留双) 功能说明:对一个实数进行四舍五入.(按照银行家算法) 例: var i, j: Integer; begin i := Round(1.5); // i等于2 j := Round(2.5); // j等于2 end; 在Delphi中使用Round函数得到的答案有时与我们所预期的会不太一样:采用的是四舍六入五留双.即当舍或入位大于或小于五时按四舍五入来处理 ,而当舍或入位等于五时,就要看前面一位是什么,根据奇进偶不进

php取整函数ceil,floor,round,intval函数的区别

开发过程中,遇到数据处理取整的时候,你会用哪个呢,小涛来介绍一下:PHP取整函数有ceil,floor,round,intval,下面详细介绍一下: 1.ceil — 进一法取整说明float ceil ( float $value )返回不小于 value 的下一个整数,value 如果有小数部分则进一位.ceil() 返回的类型仍然是 float,因为 float 值的范围通常比 integer 要大.ceil() 例子 <?php echo ceil(4.3); // 5 echo cei

delphi 四舍五入取整函数

一.四舍五入法    四舍五入是一种应用非常广泛的近似计算方法,其有算术舍入法和银行家舍入法两种.    所谓算术舍入法,就是我们通常意义上的四舍五入法.其规则是:当舍去位的数值大于等于5时,在舍去该位的同时向前位进一:当舍去位的数值小于5时,则直接舍去该位.    所谓银行家舍入法,其实质是一种四舍六入五留双(又称四舍六入五奇偶)法.其规则是:当舍去位的数值小于5时,直接舍去该位:当舍去位的数值大于等于6 时,在舍去该位的同时向前位进一:当舍去位的数值等于5时,如果前位数值为奇,则在舍去该位的

Hive中分组取前N个值

分享两篇文章,结合看更清楚一点. 背景 假设有一个学生各门课的成绩的表单,应用hive取出每科成绩前100名的学生成绩. 这个就是典型在分组取Top N的需求. 解决思路 对于取出每科成绩前100名的学生成绩,针对学生成绩表,根据学科,成绩做order by排序,然后对排序后的成绩,执行自定义函数row_number(),必须带一个或者多个列参数,如ROW_NUMBER(col1, ....),它的作用是按指定的列进行分组生成行序列.在ROW_NUMBER(a,b) 时,若两条记录的a,b列相同

MATLAB取整函数 fix floor ceil round

MATLAB取整函数 (1)fix(x) : 截尾取整. >> fix( [3.12 -3.12]) ans = 3    -3 (2)floor(x):不超过x 的最大整数.(高斯取整) >> floor( [3.12 -3.12]) ans = 3    -4 (3)ceil(x) : 大于x 的最小整数 >> ceil( [3.12 -3.12]) ans = 4    -3 (4)四舍五入取整 >> round(3.12 -3.12) ans = 0