给定max_digits
和decimal_places
,该方法将返回最大可能的十进制数。以下是我现在的代码:
from decimal import Decimal
def get_max_decimal_number(max_digits, decimal_places):
result = ''
for i in range(max_digits - decimal_places):
result += '9'
if decimal_places > 0:
result += '.'
for i in range(decimal_places):
result += '9'
return Decimal(result)
因为我们做以下假设,所以不进行类型检查:
max_digits
是大于或等于1的整数。decimal_places
是一个大于或等于0且小于或等于的整数max_digits
。结果如下:
>>> get_max_decimal_number(4, 2)
Decimal('99.99')
>>> get_max_decimal_number(2, 2)
Decimal('0.99')
>>> get_max_decimal_number(1, 0)
Decimal('9')
你可以在这里测试
我的解决方案现在感觉有些不安全。有一个更好的方法吗?也许一些我不知道的内置方法。
尝试这个,
def get_max_decimal_number(max_digits, decimal_places):
return float('9'*(max_digits-decimal_places)+'.'+'9'*decimal_places)
print(get_max_decimal_number(2,2)) # outputs 0.99
print(get_max_decimal_number(4, 2)) # outputs 99.99
print(get_max_decimal_number(1, 0)) # outputs 9.0
看到它在这里行动
您可以使用Decimal而不是float
键入强制转换结果。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句