2026a

# div


带有舍入选项的整除

# 语法

C = div(A,B)
C = div(A,B,r::RoundingMode=RoundToZero)

# 说明

C = div(A,B) 将 A 的每个元素除以 B 的对应元素,朝零方向舍入到最接近的整数。A 和 B 必须包含实数,并且其中有至少一个必须属于整数类。

  • 如果 A 和 B 是数组,则它们必须属于同一整数类,并且大小兼容;
  • 如果 A 或 B 是双精度标量,则另一个输入必须为整数类,但不能是 int64 或 uint64。然后,div 函数以相同的整数类形式返回 C。示例

C = div(A,B,r::RoundingMode) 可以指定替代选项:

RoundingMode 选项 对应函数
RoundToZero 默认
RoundDown fld
RoundUp cld
RoundNearest 最近整数舍入
RoundNearestTiesAway ——
RoundNearestTiesUp ——

示例

# 示例

整数除法

创建整数数组 A 和整数标量 B。将 A 的每个元素除以 B,朝零方向舍入到最接近的整数。

A = Int16.([-7 -4 7 11])
B = Int16(10)
C = div.(A,B)
C = 1×4 Matrix{Int16}:
0  0  0  1

两个整数数组相除

创建两个整数数组 A 和 B。将 A 的每个元素除以 B 的对应元素,朝零方向舍入到最接近的整数。

A = Int64.([-2 3])
B = Int64.([3 5])
C = div.(A,B)
C = 1×2 Matrix{Int64}:
 0  0
整数除法的舍入选项

创建双精度标量 A 和整数数组 B。用默认舍入选项 RoundToZero 将 A 除以 B 的每个元素。

A = 2.0
B = Int32.([-3 3 4])
C = div.(A,B)
C = 1×3 Matrix{Float64}:
-0.0  0.0  0.0

将结果与使用其他舍入选项时的结果进行比较。

C = div.(A,B,RoundDown)
C = 1×3 Matrix{Float64}:
-1.0  0.0  0.0
C = div.(A,B,RoundUp)
C = 1×3 Matrix{Float64}:
-0.0  1.0  1.0
C = div.(A,B,RoundNearest)
1×3 Matrix{Float64}:
-1.0  1.0  0.0
浮点值被除后的余数

计算多个角除以除数 2*pi 后的余数。div 将尝试补偿浮点四舍五入取整的影响,以尽可能生成精确的整数结果。

theta = [0.0, 3.5, 5.9, 6.2, 9.0, 4*pi]
m = 2*pi
b = div.(theta,m)
b = 6-element Vector{Float64}:
0.0
0.0
0.0
0.0
1.0
2.0

# 输入参数

A - 分子
标量 | 向量 | 矩阵 | 多维数组

分子,指定为标量、向量、矩阵或多维数组。整数输入 A 和 B 必须大小相同或大小兼容。例如,A 是 M×N 矩阵,B 是标量或 1×N 行向量。

数据类型: Int64 | Int32 | Int16 | Int128 | Float64 | Float32 | Float16 | UInt8 | UInt16 | UInt32 | UInt64 | UInt64 | Bool

B - 分母
标量 | 向量 | 矩阵 | 多维数组

分母,指定为标量、向量、矩阵或多维数组。整数输入 A 和 B 必须大小相同或大小兼容。例如,A 是 M×N 矩阵,B 是标量或 1×N 行向量。

数据类型: Int64 | Int32 | Int16 | Int128 | Float64 | Float32 | Float16 | UInt8 | UInt16 | UInt32 | UInt64 | UInt64 | Bool

# 输出参数

C - 整数解
标量 | 向量 | 矩阵 | 多维数组

整数解,以标量、向量、矩阵或多维数组形式返回。如果 A 或 B 为整数数据类型,则 C 是相同的整数数据类型。

mod 和 div 的区别

除后所得余数的概念的定义不是唯一的,两个函数 mod 和 div 各计算不同的结果。mod 函数生成一个为零或与除数具有相同符号的结果。div 函数生成一个为零或与被除数具有相同符号的结果。

另一个差别是当除数为零时的约定。mod 函数遵从 mod(a,0)报错约定,而 div 函数遵从 div(a,0)报错的约定。

两个结果都有其各自的用途。例如,在进行信号处理时,mod 函数可在周期信号上下文中使用,因为其输出是周期性的(周期等于除数)。

# 另请参阅

mod