首页 > 解决方案 > 如何从浮点数 0.01 到 0.009

问题描述

我想制作一个代码,它需要一个类似的数字0.001并返回我0.0009,所以总是小数点后一位。但这也应该适用于例如0.005,以便我得到0.004有没有办法做到这一点?另外,我将数字作为字符串获取,因此有没有一种方法可以将其转换而无需处理科学表示法。

标签: python

解决方案


如果您宁愿避免内部数字表示的问题,这里有一个冗长的方法。

number = "0.005"
# number = "0.1"

def return_a_lower_decimal(number):
    last_digit = number[-1:]
    num_digits = len(number)
    decimal_filler = "0"*(num_digits-3)
    if last_digit != "1":
        new_number = "0." + decimal_filler + str(int(last_digit)-1)
    else:
        new_number = "0.0" + decimal_filler + "9"    
    return(new_number)    

print(return_a_lower_decimal(number))

# assumptions - all numbers offered are strings of the form "0.000....d", where d is a single non-zero digit

推荐阅读