mod(x, y):模数

模数或余数函数。

声明

语法

retval = mod(x, y)
elemental integer function imod(x, y)
elemental real(sp) function mod(x, y)

参数

x 输入值,可以是整数或实数。

y 第二个输入参数的类型和种类应与 x 相同且不等于 0。

返回值

返回值的类型和种类与 x 相同。结果使用数学模或余数计算为:

x - INT (x / y) * y.

如果 y 为 0,则结果未定义,如 any integer value / 0

描述

mod(x, y)x 除以 y 时计算并返回模数或余数。结果计算使用

x - INT(x / y) * y

即,当第一个参数在数学上除以第二个参数时,结果是余数。

返回值应该小于y

类型

支持的参数类型是实数和整数。

interface mod
    module procedure i8mod, i16mod, imod, i64mod, smod, dmod
end interface

contains

elemental integer(i16) function i16mod(x, y)
integer(i16), intent(in) :: x, y
end function

elemental integer(i8) function i8mod(x, y)
integer(i8), intent(in) :: x, y
end function

elemental integer function imod(x, y)
integer, intent(in) :: x, y
end function

elemental integer function i64mod(x, y)
integer(i64), intent(in) :: x, y
end function

elemental real(sp) function smod(x, y)
real(sp), intent(in) :: x, y
end function

elemental real(dp) function dmod(x, y)
real(dp), intent(in) :: x, y
end function

示例

program intrinsics_mod
    implicit none
	print *, mod(-5, 3)
end program

结果:

-2

也可以看看

ceilingfloor