V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
coolair
V2EX  ›  问与答

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

  •  
  •   coolair · 2019-01-18 15:37:12 +08:00 · 1794 次点击
    这是一个创建于 2134 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如:
    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
    6 条回复    2019-01-18 17:24:15 +08:00
    onyourroad
        1
    onyourroad  
       2019-01-18 16:13:00 +08:00
    转成字符串然后处理?
    wfd0807
        2
    wfd0807  
       2019-01-18 16:17:33 +08:00
    "快速得到"是怎么定义的?
    rudy1224
        3
    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
        4
    ss098  
       2019-01-18 16:21:54 +08:00 via Android
    这不是除法吗。
    linap
        5
    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
        6
    sosilver  
       2019-01-18 17:24:15 +08:00
    f * (pow(10, -min(Decimal(f).adjusted(), 0)))
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1186 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 97ms · UTC 18:24 · PVG 02:24 · LAX 10:24 · JFK 13:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.