Python:如何以8位小数显示字符串

Python:如何以8位小数显示字符串,python,string,python-3.x,numbers,discord,Python,String,Python 3.x,Numbers,Discord,很抱歉这个奇怪的标题,但我真的不知道该怎么解释。基本上,我有一个从API获取的代码,但是,如果数值试图显示为低。(假设为0.0008或更低)它将显示为一组数字,并在末尾显示一个e 示例:8.888e-5或随机的东西 如何将其显示为数字?比如:每PLSR 0.00084BTC (Python 3.6.4)必须将其作为字符串保存才能工作 为什么这不是一个重复:虽然另一个线程找到了与我想要的类似的答案,但它并没有确切地解释如何将它合并到我的代码中,因为我已经将它转换为字符串。在它被转换成字符串或..之

很抱歉这个奇怪的标题,但我真的不知道该怎么解释。基本上,我有一个从API获取的代码,但是,如果数值试图显示为低。(假设为0.0008或更低)它将显示为一组数字,并在末尾显示一个e

示例:8.888e-5或随机的东西

如何将其显示为数字?比如:每PLSR 0.00084BTC

(Python 3.6.4)必须将其作为字符串保存才能工作

为什么这不是一个重复:虽然另一个线程找到了与我想要的类似的答案,但它并没有确切地解释如何将它合并到我的代码中,因为我已经将它转换为字符串。在它被转换成字符串或..之后,我会将其覆盖在顶部吗

代码:


当数字变得足够大或足够小时,Python使用。这并不意味着该值不正确或“怪异”,它只是以不同的格式显示

要强制它显示,例如8位数字,您需要格式化它:

print('%.8f' % value)

当数字变得足够大或足够小时,Python使用。这并不意味着该值不正确或“怪异”,它只是以不同的格式显示

要强制它显示,例如8位数字,您需要格式化它:

print('%.8f' % value)

你看到的是科学符号。8.888e+2表示8.888x102

如果不喜欢默认设置,则需要使用。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'

你看到的是科学符号。8.888e+2表示8.888x102

如果不喜欢默认设置,则需要使用。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'

获取错误的可能重复:必须是实数,而不是str@BlakeXavier首先将字符串转换为浮点:
print('%.8f'%float(value))
@BlakeXavier删除这行中的
print
和周围的
()
x=print('%.8f'%float(pulsar))
。您还可以(大概)将
浮点值
数据['last']
)转换为
字符串
,然后再转换回
浮点值
。跳过将其转换为
字符串
@BlakeXavier请按照Mark的回答进行操作,他正好满足您的需要。获取错误:必须是实数,而不是实数str@BlakeXavier首先将字符串转换为浮点:
print('%.8f'%float(value))
@BlakeXavier删除
print
和周围的
()
在这一行:
x=print('%.8f'%float(pulsar))
。您还可以(大概)将
浮点值
数据['last']
)转换为
字符串
,然后再转换回
浮点值
。跳过将其转换为
字符串
@BlakeXavier请按照Mark的回答进行操作,他完全符合您的需要。这有助于解释问题,但我如何将其实现到我的代码中?不能这样做,因为我将列表转换为字符串,这样做会产生错误。@Blake请给出一个简单的示例,而不是链接。链接断开了,这个问题对未来的观众不会有用。见准则。要添加代码,请在问题中剪切n-paste,突出显示它,然后使用
{}
按钮将其格式化为代码。添加代码,尽管很难理解。等待客户端。更改状态(game=discord.game(name=f'PLSR Price:{float(pulsar):.2f})-这不会以正确的格式返回。我做错了什么吗?这有助于解释问题,但我如何在代码中实现它?不能这样做,因为我将列表转换为字符串,这样做会产生错误。@Blake请给出一个简单的示例,而不是链接。链接断开了,这个问题对未来的观众不会有用。见准则。要添加代码,请在问题中剪切n-paste,突出显示它,然后使用
{}
按钮将其格式化为代码。添加代码,尽管很难理解。等待客户端。更改状态(game=discord.game(name=f'PLSR Price:{float(pulsar):.2f})-这不会以正确的格式返回。我做错什么了吗?