Python 根据给定值添加小数点的程序

Python program to add decimal point based on given value

标题可能会让您感到困惑! 别担心,我已经在这里解释过了:

例如,如果我通过 convert(11098,3),convert() 函数应该 return 11.098。 我传递的是 convert(11098,2),所以 convert() 应该 return 110.98.

在这里,任何整数都应该根据给定的分数通过添加小数点来转换为浮点数。根据分数计算,要加小数点。

有什么数学公式可以换算吗?我可以在我的 python 代码中实现它们。

import math
def convert(num,power):
return (float)(num/math.pow(10,power))

math.pow(x,y) 函数 returns x^y
要移动小数位,我们取 10 的幂并使用它我们可以移动小数位

我不太确定是否已经有现成可用的功能,但您可以这样做:

def convert(value, decimals):
     value = str(value) # convert value to string-type for indexing
     d1 = value[:-decimals] # d1 comes before the decimal
     d2 = value[-decimals:] # d2 comes after the decimal
     output = f"{d1}.{d2}" # join d1 and d2 with . using f-string
     return output

print(convert(11098, 2))

110.98

请注意,输出也将是字符串类型,如果需要,您可以使用 return float(output) 将其更改为浮点类型。

希望对您有所帮助!

如果我的字符串操作不清楚,您可以阅读我在 LearnDataSci 上发布的这篇文章以获取更多信息: https://www.learndatasci.com/solutions/python-substring/

您可以尝试使用一些 python lambda 函数。

convert = lambda I, F: I/ 10**F
print(convert(11098, 3))
# output:
# 11.098

这是一个您可以理解的简单解决方案 -

def convert(number,points):
    decimal = pow(10,points) # power function

    return number / decimal

num = convert(11098,3)
print(num)

所以这里,decimal变量决定了分多少分。

结果-

11.098

另一个例子-

num = convert(11098,5)
print(num)
# Output: 0.11098

在这里,我们可以用到一点数学。

众所周知,任何数除以10的次方时,小数点向左移动很多次,因为除数中有0。

我们可以将除数 10 提高到用户提供的幂。

这样,您将获得所需的输出。

def convert(x,d):
    return int(x) / 10**d

print(convert(11098,2))