mars.tensor.round_#
- mars.tensor.round_(a, decimals=0, out=None)#
均匀地四舍五入到给定的小数位数。
- Parameters
a (array_like) – 输入数据。
decimals (int, 可选) – 要舍入到的小数位数(默认:0)。 如果decimals为负,则指定小数点左侧的位置数。
out (Tensor, 可选) – 备用输出张量,用于放置结果。它必须具有与预期输出相同的形状,但输出值的类型在必要时将被转换。
- Returns
rounded_array – 一个与 a 相同类型的张量,包含四舍五入的值。 除非指定了 out,否则会创建一个新的张量。返回结果的引用。
复数的实部和虚部分别进行四舍五入。四舍五入浮点数的结果是浮点数。
- Return type
张量
备注
对于恰好位于四舍五入十进制值中间的值,NumPy 四舍五入到最近的偶数值。因此,1.5 和 2.5 四舍五入为 2.0, -0.5 和 0.5 四舍五入为 0.0,等等。由于 IEEE 浮点标准中十进制分数的不精确表示以及在按十的幂缩放时引入的 错误,结果也可能令人惊讶。1
参考文献
- 1
“关于 IEEE 754 状态的讲义”,威廉·卡汉, http://www.cs.berkeley.edu/~wkahan/ieee754status/IEEE754.PDF
- 2
“浮点计算中无意义的舍入评估有多么徒劳?”威廉·卡汉,http://www.cs.berkeley.edu/~wkahan/Mindless.pdf
示例
>>> import mars.tensor as mt
>>> mt.around([0.37, 1.64]).execute() array([ 0., 2.]) >>> mt.around([0.37, 1.64], decimals=1).execute() array([ 0.4, 1.6]) >>> mt.around([.5, 1.5, 2.5, 3.5, 4.5]).execute() # rounds to nearest even value array([ 0., 2., 2., 4., 4.]) >>> mt.around([1,2,3,11], decimals=1).execute() # tensor of ints is returned array([ 1, 2, 3, 11]) >>> mt.around([1,2,3,11], decimals=-1).execute() array([ 0, 0, 0, 10])