我目前正在编写一个带有两个随机变量的程序,需要在一个等式中计算,并希望获取前三个数字并将其转换为百分比,以下是我希望程序回复的内容
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功能允许我或我该怎么办? 感谢您阅读本文并理解我的不良英语(对不起)
答案 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