簡體   English   中英

如何使浮點數僅顯示一定數量的小數

[英]How do I make a float only show a certain amount of decimals

我有一個小數點后 16 位的浮點數,但我希望它的上限為 6,如果我得到一個小數點少於 6 位的浮點數,我希望它添加 0 直到它有 6 個。即:

1.95384240549 = 1.953842 3.12 = 3.120000

我正在嘗試根據 object 的一定需求來生成一個值。 謝謝!

要四舍五入到一定數量的小數,您可以使用round()

例子:

round(1.95384240549,6) > 1.953842

對於小數點后更多的 0,您可以使用format()

format(3.12, '.6f') > '3.120000'

注意這是字符串類型

在這里閱讀更多:

舍入語法

格式語法

比上一個答案復雜一點,但更一致。

import math

def truncate(number, digits) -> float:
    places = len(str(number)[str(number).find("."):])
    if places > 6:
        stepper = 10.0 ** digits
        return math.trunc(stepper * number) / stepper
    else:
        return str(number) + "0"*(6 - places)

示例: truncate(3.12, 6)返回3.120000並且truncate(1.95384240549, 6)返回1.953842

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM