是否有任何方法只返回除法后的小数? (Python3)

发布于 2024-10-19 13:00:14 字数 77 浏览 1 评论 0原文

在 python 3 中,是否有任何方法可以仅返回除法后的十进制值?

例如,如果我用这个方法将 4 除以 5,它将返回 8。

In python 3, are there any methods that would return just the decimal value after a division?

For example, if I divided 4 by 5 in this method, it would return 8.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

感受沵的脚步 2024-10-26 13:00:14

使用浮点除法。例如:

(11.0 / 5) % 1 = 0.20000000000000018

(1.0 * 11 / 5) % 1 = 0.20000000000000018

Use floating-point division. e.g.:

(11.0 / 5) % 1 = 0.20000000000000018

(1.0 * 11 / 5) % 1 = 0.20000000000000018
ぶ宁プ宁ぶ 2024-10-26 13:00:14

这个怎么样?

>>> int(((4.0 / 5.0) % 1) * 10)
8

How about this?

>>> int(((4.0 / 5.0) % 1) * 10)
8
惟欲睡 2024-10-26 13:00:14

对于通用数字 a,您可以使用 int 轻松计算它:

int(10*a)%10

但是,请注意,这仅适用于正数!

如果您希望它也适用于负数:

int(10*a*cmp(a,0))%10*cmp(a,0)

You can easily calculate it using int, for a generic number a:

int(10*a)%10

However, note that this only works for positive numbers!

If you want it to work for negative numbers as well:

int(10*a*cmp(a,0))%10*cmp(a,0)
瞄了个咪的 2024-10-26 13:00:14

您无需浮点运算即可做到这一点,对吧?

foo=lambda x,y: (10*(x%y))/y)

# Demo
>>> for i in range(20):
...   print(foo(i,7), i/7.0)
... 
(0, 0.0)
(1, 0.14285714285714285)
(2, 0.2857142857142857)
(4, 0.42857142857142855)
(5, 0.5714285714285714)
(7, 0.7142857142857143)
(8, 0.8571428571428571)
(0, 1.0)
(1, 1.1428571428571428)
(2, 1.2857142857142858)
(4, 1.4285714285714286)
(5, 1.5714285714285714)
(7, 1.7142857142857142)
(8, 1.8571428571428572)
(0, 2.0)
(1, 2.1428571428571428)
(2, 2.2857142857142856)
(4, 2.4285714285714284)
(5, 2.5714285714285716)
(7, 2.7142857142857144)

You can do this without floating point operations, right?

foo=lambda x,y: (10*(x%y))/y)

# Demo
>>> for i in range(20):
...   print(foo(i,7), i/7.0)
... 
(0, 0.0)
(1, 0.14285714285714285)
(2, 0.2857142857142857)
(4, 0.42857142857142855)
(5, 0.5714285714285714)
(7, 0.7142857142857143)
(8, 0.8571428571428571)
(0, 1.0)
(1, 1.1428571428571428)
(2, 1.2857142857142858)
(4, 1.4285714285714286)
(5, 1.5714285714285714)
(7, 1.7142857142857142)
(8, 1.8571428571428572)
(0, 2.0)
(1, 2.1428571428571428)
(2, 2.2857142857142856)
(4, 2.4285714285714284)
(5, 2.5714285714285716)
(7, 2.7142857142857144)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文