标题可能会让您感到困惑! 别着急,我已经解释过了:
例如,如果我传递 convert(11098,3),convert() 函数应该返回 11.098。 我正在传递 convert(11098,2),所以 convert() 应该返回 110.98。
这里,任何整数都应该通过根据给定的分数添加小数点来转换为浮点数。以分数为基础,应加小数点。
有什么数学公式可以转换这个吗?我可以在我的 python 代码中实现它们。
标题可能会让您感到困惑! 别着急,我已经解释过了:
例如,如果我传递 convert(11098,3),convert() 函数应该返回 11.098。 我正在传递 convert(11098,2),所以 convert() 应该返回 110.98。
这里,任何整数都应该通过根据给定的分数添加小数点来转换为浮点数。以分数为基础,应加小数点。
有什么数学公式可以转换这个吗?我可以在我的 python 代码中实现它们。
我不太确定是否已经有一个函数可以轻松地执行此操作,但您可以这样做:
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/
,这是一个您可以理解的简单解决方案 -
True
所以在这里,def convert(number,points):
decimal = pow(10,points) # power function
return number / decimal
num = convert(11098,3)
print(num)
变量决定了除以数字的点数。
结果-
decimal
另一个例子-
11.098
,
在这里,我们可以使用一点数学。
众所周知,任何数除以 10 的幂时,小数点向左移动的次数与除数中的 0 相同。
我们可以将除数 10 提高到用户提供的幂。
这样,您将获得所需的输出。
def convert(x,d):
return int(x) / 10**d
print(convert(11098,2))
,
import math
def convert(num,power):
return (float)(num/math.pow(10,power))
math.pow(x,y) 函数返回 x^y
要移动小数位,我们取 10 的幂并使用它我们可以移动小数位
你可以用一些 python lambda 函数试试这个。
convert = lambda I,F: I/ 10**F
print(convert(11098,3))
# output:
# 11.098