嘟嘟社区

[疑问] 求教下python保留两位小数,且不要四舍五入,不!


百度的ai和qq的ai写的依旧会四舍五入

其实我也知道一种写法,就是折腾点

7f59ba6d-8ed4-4a3e-a481-a8a276cf9e91.png (8.97 KB, 下载次数: 4)

下载附件

昨天 22:22 上传


但是这样写感觉不专业,所以请教大佬们,有没有更加专业的写法

这个gpt不是很在行吗

todayfortim 发表于 2024-7-17 22:27
这个gpt不是很在行吗

没有gpt资源哎,只能用百度的代码ai和腾讯qq的代码ai,结果提供了N个解决办法,全是错的,依旧四舍五入。

直接按照小数点拆开再取
math.floor(number * 100) / 100
本帖最后由 wangtaoceo 于 2024-7-17 22:38 编辑

a = 2.345566
c = int(a * 100) / 100
或者
import math
def truncate(number, digits) -> float:
    stepper = 10.0 ** digits
    return math.floor(stepper * number) / stepper

wangtaoceo 发表于 2024-7-17 22:34
a = 2.345566
c = int(a * 100) / 100
或者

好的,谢谢大佬们

直接截取字符串
贴不了代码. 给个关键词. 向上取整,向下取整,截断
def ceil_two_decimal_places(value):
    """向上取整保留两位小数"""
    return math.ceil(value * 100) / 100

def floor_two_decimal_places(value):
    """向下取整保留两位小数"""
    return math.floor(value * 100) / 100

def truncate_two_decimal_places(value):
    """截断保留两位小数"""
    str_value = str(value)
    if ‘.’ in str_value:
        integer_part, decimal_part = str_value.split(‘.’)
        truncated_decimal_part = decimal_part[:2]
        return float(f"{integer_part}.{truncated_decimal_part}")
    else:
        return float(str_value)

e,不能贴代码