簡體   English   中英

Python:如何在8個小數位顯示字符串

[英]Python: How To Display String In 8 Decimal Places

對不起,標題怪異,但是我真的不知道該怎么解釋。 基本上,我有從API抓取的這段代碼,但是,如果數值試圖顯示為低。 (比如說0.0008或更低),它將顯示為一堆數字,最后顯示一個e。

例如:8.888e-5或隨機的東西。

如何使其顯示為數字? 像:每個PLSR 0.00084BTC。

(Python 3.6.4)必須將其保留為字符串才能正常工作!

為什么這不是重復的:盡管另一個線程找到了與我想要的答案類似的答案,但它並未完全說明如何將其合並到我已經將其轉換為字符串的代碼中。 在將其轉換為字符串或..之后,我是否將其覆蓋在上面?

碼:

import requests
import discord
import asyncio

url = 'https://cryptohub.online/api/market/ticker/PLSR/'
response = requests.get(url)
data = response.json()['BTC_PLSR']

client = discord.Client()

@client.event
async def on_ready():
print('Logged in as')
print(client.user.name)
print(client.user.id)
print('------')

price = print('PLSR Price:', data['last'])
pulsar = str(data['last'])

await client.change_presence(game=discord.Game(name="PLSR Price: " + pulsar))

您正在看到科學計數法。 8.888e + 2表示8.888x10 2

如果您不喜歡默認值,則需要使用String Formatting Mini-Language Python在格式化方面經歷了一些旋轉。 以下是一些選項:

>>> value = .000008888  
>>> value                           # default display of small number
8.888e-06
>>> print('%.8f' % value)           # old, deprecated format.
0.00000889
>>> print('{:.8f}'.format(value))   # newer format.
0.00000889
>>> print(f'{value:.8f}')           # newest format in Python 3.6.
0.00000889

請注意, .8f表示“十進制固定浮點數后8位”。

更多信息:

根據您的評論,您可以使用以下科學表達式格式化字符串:

>>> pulsar = '8.888e+2'
>>> f'PLSR Price: {float(pulsar):.2f}'
'PLSR Price: 888.80'

當數字變得足夠大或小時,Python會使用科學計數法來引用它們。 這並不意味着該值不正確或“怪異”,而是以其他格式顯示。

要強制顯示8位數字,您需要對其進行格式化:

print('%.8f' % value)

暫無
暫無

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

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