使用 Python 如何快速得到一个数乘以多少基数(1、10、100)可以变成大于等于 1 的数?

2019-01-18 15:37:12 +08:00
 coolair
比如:
0.01 x (100) = 1
0.002 x (1000) = 2
0.15 x (10) = 1.5
3.14 x (1) = 3.14
123 x (1) = 123
1786 次点击
所在节点    问与答
6 条回复
onyourroad
2019-01-18 16:13:00 +08:00
转成字符串然后处理?
wfd0807
2019-01-18 16:17:33 +08:00
"快速得到"是怎么定义的?
rudy1224
2019-01-18 16:20:41 +08:00
from math import log, ceil

y = 10 ** ceil(log(1/x,10)) if x < 1 else 1

这样?
ss098
2019-01-18 16:21:54 +08:00
这不是除法吗。
linap
2019-01-18 16:33:30 +08:00
import math
def fun1(n):
return 1 if n>=1 else math.pow(10,math.ceil(math.log10(1/n)))
def fun2(n):
a=1
while n*a<1:
a*=10
return a
sosilver
2019-01-18 17:24:15 +08:00
f * (pow(10, -min(Decimal(f).adjusted(), 0)))

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/528321

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX