在Python中根据给定的最大位数和小数位数创建最大可能的十进制数

黑马

给定max_digitsdecimal_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')

你可以在这里测试

我的解决方案现在感觉有些不安全。有一个更好的方法吗?也许一些我不知道的内置方法。

CodeIt

尝试这个,

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

计算bash shell中十进制数中的小数位数

在十进制列中存钱-精度和小数位数是多少?

数学确定十进制值的精度和小数位数

存储具有不同小数位数的十进制数的最佳方法

Angular 2中的十进制管道-仅逗号,无小数位数

SQL Server 为非常大的数字操作保留十进制小数位数和精度

如何创建与(p,s)精度和小数位数相匹配的正则表达式,例如SQL十进制类型?

Javascript如何将十进制数转换为具有特定小数位数的字符串

改进(工作)函数以获取十进制数具有一定小数位数的行

在不考虑区域性的情况下,在十进制值中查找小数位数

MySQL-如何使用存储的精度/小数位数转换为十进制?

微风-保存十进制类型的小数位数错误?

如何使用 Google 表格中的 IFS 和 AND 函数根据数字的小数位数创建条件?

计算给定小数的小数位数

如何根据小数位数获取整数的动态最大值

Java-十进制Format.parse返回具有指定小数位数的双精度值

设置变量的最大值和最小值并限制小数位数

小数精度和小数位数

根据小数位数舍入

固定小数位在Java中的双精度和十进制的幂

对PHP中的特定小数位取整十进制数

给定数字N消除K位数字以获得最大可能数

BigDecimal,精度和小数位数

底数和小数位数

如何在Python中设置结果的小数位数

如何修改python终端中显示的小数位数?

基于整数和小数部分位数的十进制格式

限制GWT中的小数位数?

R中删除的小数位数