Python~从左到右获取前几个数字

时间:2017-01-06 05:54:04

标签: python python-2.7

我目前正在编写一个带有两个随机变量的程序,需要在一个等式中计算,并希望获取前三个数字并将其转换为百分比,以下是我希望程序回复的内容

formular = (((((3*m-2*h)*g*c*b)/3*m)*o)/lvl)/100
print formular
#g and lvl are the random variables

以下是我希望它从公式中输出的内容。

6920.157 to 69.2
3561.356 to 35.6
182435.24 to 18.2

是否有一个inbuild功能允许我或我该怎么办? 感谢您阅读本文并理解我的不良英语(对不起)

3 个答案:

答案 0 :(得分:0)

试试这个:

def convert(num):
    while num > 100:
        num /= 10.0;
    return "%.1f" % num

输出:

print(convert(6920.157))  # Prints 69.2
print(convert(3561.356))  # Prints 35.6
print(convert(182435.24)) # Prints 18.2

答案 1 :(得分:0)

没有内置功能,但通过一些操作很容易将一些内容串联起来。

首先是将您的数字减少到2位有效数字。您可以使用log函数获取有效位数,然后使用取幂来获得幅度。用round完成它,得到整数后的一位小数。

digits = int(math.log(formular, 10)) + 1
two_digits = formular / (10 ** (digits - 2))
print round(two_digits, 1)

答案 2 :(得分:0)

假设你的输出是。你可以这样做:

>>> a = 6920.157
>>> float(str(a)[:3])/10
69.2