>>>导入十进制 >>>十进制。 十进制(-7)//4 十进制('-1')#结果四舍五入为0。 >>> -7 // 4 -2#结果舍入为负无穷大。
-
2 这个 文档 在“Decimal对象的算术与整数和浮点的算术之间有一些小的区别”后面的部分说是这样的,但它没有说 为什么? . – 用户555045 评论 1月7日0:16 -
我不知道作者的动机是什么 十进制的 模块是,但也许它正在保留 结合性 : (-7) // 4 => -2 和 -(7 // 4) => -1 ,同时 十进制的。 小数(-7)//4 => 十进制('-1') 和 -(十进制。十进制(7)//4) => 十进制('-1') – 作者赫斯博士 评论 1月7日0:30 -
是的,我看到文档中提到了这一点,但我很好奇为什么会做出这个决定。 – Wirable2323(无线2323) 评论 1月7日0:33 -
三 这个 十进制的 模块完全实现了IBM 十进制算术规范 就是这样规定的。 询问IBM:^) – 马克·托洛宁 评论 1月7日0:35 -
1 @罗伯特·哈斯这就是我的意思,是的。 是的,有一个标准的关联性定义,它严格限制为二进制操作。 您链接到它:-) – 凯利-邦迪 评论 1月7日22:52
1答案
规范,其中
十进制的 基于模块要求有一个具有以下语义的“余数”操作
十进制的 的
% 操作(即
x%年 有…的标志
x个 ). 然而,规范并没有说明指定的操作应该如何映射到语言结构。
所以选择是(1)离开
% 对于
十进制的 对象未实现,并提供单独的“余数”方法,或(2)映射
% 到
十进制的 的余数运算,并接受
% 的语义
浮动 和
十进制的 .
也许做出了错误的选择。 但它现在就在那里,对我来说,它并没有那么明显的错误,值得大肆抨击
% 对于
十进制的 物体。
— 马克·迪金森 (2011年5月5日)