当前位置: > 质感生活
round是什么意思(数值函数round,int,mod在Excel和Python中的实现)
2023-06-09 11:58:02
Mars
129
来源:财务随想

round是什么意思?本文主要介绍以下几个函数:小数处理函数round,roundup,rounddown,取整函数int,ceiling,随机函数rand,randbetween,randarray,取模函数mod,奇数函数odd,偶数函数even,绝对值函数abs,序列函数

round是什么意思

sequence,以及上面这些函数用法如何在Python中实现

本例任务包:

问题1:生成一列10个随机数,范围从0到100的实数,并保留两位小数

问题2:生成一列10个随机整数,范围从-100到100

问题3:分别将数值3.1415926进行四舍五入取2位小数,向上取2位小数,向下取2位小数,向上取整数,向下取整数,将数值3141.5926向小数点往左向上取2位,小数点往左向下取2位

问题4:分别将数值9.12进行向上取整为1的倍数,向上取整为3的倍数,向上取奇数,向上取偶数

问题5:生成一列10个随机小数,范围从-100.00到100.00,并进行取绝对值

问题6:生成一个随机数组,行数为10,列数为6,最小值为-100.00,最大值为100.00,小数2位显示

问题7:生成一列数值进行6个数循环,从1-6再从1-6,这样下去

问题8:生成一列1-20的序列,生成一列10行5列的序列,起始值为0,增量值为5

基础讲解:

RAND()函数:返回一个大于等于 0 且小于1 的平均分布的随机实数,参数为空格

每次计算工作表时都会返回一个新的随机实数(可按快捷键F9进行重新计算)

ROUND函数:ROUND(number, num_digits),将数字四舍五入到指定的位数

第一个参数是数值,第二个是小数位数,表示保留小数的位置,四舍五入之后,后面的位数将被丢弃

例:对数值3.1415926 进行函数操作:

四舍五入取两位:=ROUND(A2,2)

我们把B2单元格复制到C2,保存为数值格式,可以看到这个数值只有小数两位,即后面的位数15926都被丢掉了

而如果把A2单元格改为显示2位小数,我们可以看到显示为3.14,

但是其实这个数值并没有改变,点单元格可以看到,后面还是有15926位数的

如果是向上取进行舍入呢,比如3.1415926不四舍五入,而是由3.141向上取到3.15,这里则要用到roundup函数

round单词本身有四舍五入的意思,up则是向上,表示向上取位,

ROUNDUP(number, num_digits)

第一个参数是数值,

第二个是向上取舍的位数,取整数

如果 num_digits 大于 0(零),则将数字向上舍入到指定的小数位数。

如果 num_digits 为 0,则将数字向上舍入到最接近的整数。

如果 num_digits 小于 0,则将数字向上舍入到小数点左边的相应位数。

如果第二个参数为0,则表是向上取为整数,这时这个功能相当于函数ceiling()第二个参数为1时的用法

如果第一个参数为负数,则表示结果和不考虑负号时的结果是一样

如果第二个参数为负数,则表示向左进行舍位向上,例:

此时表示对小数点向左两位41舍掉,然后4前面的1向上取2,即得到3200

这个函数在实际应用中很重要的,比如在计算快递单费的时候,超过某一个重量会自动向上进行取数

既然有UP,那么就一定有DOWN

ROUNDDOWN函数用法和ROUNDUP函数一样,不相处在于一个是向下,一个是向上

当ROUNDDOWN函数第二个参数为0时,其功能就和INT取整函数相同了

Int( number )将数字向下舍入到最接近的整数,例:

与期相反,CEILING函数是向上取整

CEILING(number, significance),ceiling英文是天花板的意思,函如其名,返回将参数number 向上舍入(沿绝对值增大的方向)为最接近的指定基数的倍数

不论参数 number 的符号如何,数值都是沿绝对值增大的方向向上舍入,这里和ROUNDUP一样

如果 number 正好是 significance 的倍数,则不进行舍入。

如果 number 和 significance 都为负,则对值按远离 0 的方向进行向下舍入。

如果 number 为负,significance 为正,则对值按朝向 0 的方向进行向上舍入,例:

再介绍一下取模函数MOD

MOD(number, divisor),divisor是除数的意思,mod英文在计算机里是余数的意思,也叫“模”,此函数返回两数相除的余数, 结果的符号与除数相同

这个函数与行号函数ROW()搭配可以实现数字周期性循环

问题1:生成一列10个随机小数,范围从1到100的实数,并保留两位小数

输入公式=ROUND(RAND()*100,2)

RAND()生成的随机数在0-1之间,乘100则在1和100之间

问题2:生成一列10个随机正整数,范围从-100到100

=RANDBETWEEN(-100,100)

RANDBETWEEN(bottom, top),返回位于两个指定数之间的一个随机整数。 每次计算工作表时都将返回一个新的随机整数。

第一个参数是将返回的最小整数。

第二个参数是将返回的最大整数。

实际用途这个函数与CHOOSE函数搭配可以制作一个随机抽取姓名的功能

问题3:分别将数值3.1415926进行四舍五入取2位小数,向上取2位小数,向下取2位小数,向上取整数,向下取整数,将数值3141.5926向小数点往左向上取2位,小数点往左向下取2位

四舍五入两位公式=ROUND(A2,2)

向上两位公式=ROUNDUP(A2,2)

向下两位公式=ROUNDDOWN(A2,2)

向上取整公式=ROUNDUP(A2,0)

向下取整公式=ROUNDDOWN(A2,0)

往左向上取两位 =ROUNDUP(A3,-2)

往左向下取两位=ROUNDDOWN(A3,-2)

问题4:分别将数值9.12进行向上取整为1的倍数,向上取整为3的倍数,向上取奇数,向上取偶数

向上取整1的倍数=CEILING(A2,1)

向上取整3的倍数=CEILING(A2,3)

向上取奇数=ODD(A2)

向上取偶数=EVEN(A2)

EVEN(number) 正数向上取偶,负数向下取偶

ODD(number) 正数向上取奇,负数向下取奇

问题5:生成一列10个随机小数,范围从-100.00到100.00,并进行取绝对值

输入公式=RANDBETWEEN(-100,100)*RAND()

=ABS(-5)返回绝对值,abs是absolute单词绝对的缩写

问题6:生成一个随机数组,行数为10,列数为6,最小值为-100.00,最大值为100.00,小数显示

输入公式=RANDARRAY(10,6,-100,100,0)

但是显示的结果小数有很多位,我们用四舍五入的形式取2位=ROUND(RANDARRAY(10,6,-100,100,0),2)

问题7:生成一列数值进行6个数循环,从1-6再从1-6,这样下去

=IF(MOD(ROW(A1),6)=0,6,MOD(ROW(A1),6))

取余函数循环时会出现等于0的情况,当MOD(ROW(A6),6)=0,我们加一个IF函数时行修正一下

问题8:生成一列1-20的序列,生成一列10行5列的序列,起始值为0,增量值为5

=SEQUENCE(行,[列],[开始数],[增量]),sequence英文是序列的意思,可在数组中生成一系列连续数字

第一个参数是要返回的行数

第二个参数是要返回的列数

第三个参数是序列中第一个数字

第四个参数是步长,即数组中每个连续值递增的值

例:生成一列1-20的序列:

=SEQUENCE(20,1,1,1)

生成一个10行5列,起始为0,增量为5:

=SEQUENCE(10,5,0,5)

Python实现:

问题1:生成一列10个随机数,范围从0到100的实数,并保留两位小数

import random

a=[]

i=0

while i<=9:

a.append(round(random.random()*100,2))

i += 1

问题2:生成一列10个随机整数,范围从-100到100

import random

a=[]

i=0

while i<=9:

a.append(random.randint(-100,100))

i += 1

问题3:分别将数值3.1415926进行四舍五入取2位小数,向上取2位小数,向下取2位小数,向上取整数,向下取整数,将数值3141.5926向小数点往左向上取2位,小数点往左向下取2位

四舍五入取小数二位:

a = 3.1415926

round(a,2)

import math

def roundup(number,digit):

return math.ceil(number*(10**digit))/(10**digit)

def rounddown(number,digit):

return math.floor(number*(10**digit))/(10**digit)

上面是自定义两个函数,实现的功能与Excel上相对应的函数功能一样

向上两位:roundup(a,2)

向下两位:rounddown(a,2)

向上取整math.ceil(a)

向下取整math.floor(a)

向左2位向上roundup(a,-2)

向左2位向下rounddown(a,-2)

问题4:分别将数值9.12进行向上取整为1的倍数,向上取整为3的倍数,向上取奇数,向上取偶数

def ceiling(number,x):

if number%x == 0:

print(number)

else:

number = math.ceil(number/x)*x

print(number)

上面是自定义一个函数ceiling,使其功能与Excel同名函数功能一样

ceiling(9.12,1)

def odd(x):

if x%2 == 0:

print(x+1)

else:

x = math.ceil(x/2)*2

print(x+1)

odd(9.12)

上面是自定义向上取奇数函数

def even(x):

if x%2 == 0:

print(x)

else:

x = math.ceil(x/2)*2

print(x)

自定义向上取偶数函数

问题5:生成一列10个随机小数,范围从-100.00到100.00,并进行取绝对值

import random

a=[]

i=0

while i<=9:

a.append(round(random.random()*random.randint(-100,100),2))

i += 1

for i in range(10):

print(abs(a[i]))

问题6:生成一个随机数组,行数为10,列数为6,最小值为-100.00,最大值为100.00,小数2位显示

这个是新建一个空panda数据类型里的DataFrame数组,然后用循环语句,进行对每行每列的值进行取随机数赋值

import pandas as pd

import random

a=pd.DataFrame()

for i in range(10):

for j in range(6):

a.loc[i,j] = round(random.random()*random.randint(-100,100),2)

print(a)

问题7:生成一列数值进行6个数循环,从1-6再从1-6,这样下去

此例用到while循环语句,只要变量i小于20就循环,这里我们是假定设置20行,当然根据需要可以改变行数,然后返回i对6进行取余后的值加1,就会形成我们想要的循环数列

i=0

while i<20:

print(i%6+1)

i +=1

问题8:生成一列1-20的序列,生成一列10行5列的序列,起始值为0,增量值为5

生成一列1-20的序列:

设置变量a为空序列,然后让i在0-19数字里循环,把i+1的值增加到变量a里面即可

a=[]

for i in range(20):

a.append(i+1)

a

np.arange(0,250,5).reshape(10,5)

numpy模块的arange函数,arange函数第一个参数是起始值,第二个参数是最大值(不含本身),第三个参数是步长,reshape是数组形式,第一个参数是行数,第二个参数是列数

本文关键词: round是什么意思
本文标签: