floor(x, kind):去一取整

去一取整函数。

声明

语法

retval = floor(x)
elemental integer function floor(x, kind)

参数

x ,输入值必须是实数类型。

kind 可选输入参数必须是一个标量整数常量表达式。

返回值

如果 kind 作为输入参数传递,则返回值是 integer(kind) 类型。如果不是,则返回默认类型整数。

返回值等于或最接近小于或等于 x 的最大整数。

描述

floor(x) 返回小于或等于 x 的最大整数。它返回一个整数值,除非使用第二个可选参数特别指定。

类型

支持的参数类型是实数。

interface floor
    module procedure sfloor_i32, sfloor_i64, dfloor_i32, dfloor_i64
end interface

contains

elemental integer(i32) function sfloor_i32(x, kind)
real(sp), intent(in) :: x
integer(i32), intent(in) :: kind
end function

elemental integer(i64) function sfloor_i64(x, kind)
real(sp), intent(in) :: x
integer(i64), intent(in) :: kind
end function

elemental integer(i32) function dfloor_i32(x, kind)
real(dp), intent(in) :: x
integer(i32), intent(in) :: kind
end function

elemental integer(i64) function dfloor_i64(x, kind)
real(dp), intent(in) :: x
integer(i64), intent(in) :: kind
end function

示例

program intrinsics_floor
    implicit none
	real, parameter :: x = 3.1
	print *, floor(x)
	print *, floor(-3.1)
end program

结果:

3
-4

也可以看看

ceiling, mod.