簡體   English   中英

沒有科學計數法的Python計算

[英]Python calculations without scientific notation

我嘗試使用python處理一些較大的數字,這些數字很難手動計算。 假設我有2的冪數256作為一個長整數作為起點。 然后,當我想對它做任何事情(例如,除以2)時,python用5.78960446186581e+76這樣的科學符號為我提供了價值。

但是,我需要非常精確的數字,所有這些都可以有所作為。 在進行計算時,如何擺脫這種科學計數法?

您應該在Python 3中使用整數除法,例如:

a = 2 ** 256
print(a / 2)
print(a // 2)

這將打印

5.78960446186581e+76
57896044618658097711785492504343953926634992332820282019728792003956564819968

您可以使用標准庫中的decimal模塊:

import decimal

if __name__ == '__main__':
    decimal.getcontext().prec = 100
    a = decimal.Decimal(1) / decimal.Decimal(7)
    b = decimal.Decimal(str(a * decimal.Decimal(str(1e100))))
    print(a)
    print(b)

輸出:

0.1428571428571428571428571428571428571428571428571428571428571428571428571428571428571428571428571429 1428571428571428571428571428571428571428571428571428571428571428571428571428571428571428571428571429

暫無
暫無

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

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