Rencontré un problème où mes données JSON sont imprimées sous forme de notation scientifique au lieu d'un flottant.
import urllib2
import json
import sys
url = 'https://bittrex.com/api/v1.1/public/getmarketsummary?market=btc-quid'
json_obj = urllib2.urlopen(url)
QUID_data = json.load(json_obj)
QUID_MarketName_Trex = QUID_data["result"][0]["MarketName"][4:9]
QUID_Last_Trex = QUID_data["result"][0]["Last"]
QUID_High_Trex = QUID_data["result"][0]["High"]
QUID_Low_Trex = QUID_data["result"][0]["Low"]
QUID_Volume_Trex = QUID_data["result"][0]["Volume"]
QUID_BaseVolume_Trex = QUID_data["result"][0]["BaseVolume"]
QUID_TimeStamp_Trex = QUID_data["result"][0]["TimeStamp"]
QUID_Bid_Trex = QUID_data["result"][0]["Bid"]
QUID_Ask_Trex = QUID_data["result"][0]["Ask"]
QUID_OpenBuyOrders_Trex = QUID_data["result"][0]["OpenBuyOrders"]
QUID_OpenSellOrders_Trex = QUID_data["result"][0]["OpenSellOrders"]
QUID_PrevDay_Trex = QUID_data["result"][0]["PrevDay"]
QUID_Created_Trex = QUID_data["result"][0]["Created"]
QUID_Change_Trex = ((QUID_Last_Trex - QUID_PrevDay_Trex)/ QUID_PrevDay_Trex)*100
QUID_Change_Var = str(QUID_Change_Trex)
QUID_Change_Final = QUID_Change_Var[0:5] + '%'
print QUID_Last_Trex
Il imprime la valeur suivante; 1.357e-05
. J'ai besoin que ce soit un flottant avec 8 caractères derrière la décimale (0,00001370)
Comme vous pouvez le voir ici -> http://i.imgur.com/FCVM1UN.jpg , mon interface graphique affiche la première ligne correcte (en utilisant exactement le même code).
Vous regardez la par défaut str()
formatage des nombres à virgule flottante, où la notation scientifique est utilisée pour des nombres suffisamment petits ou grands.
Vous n'avez pas besoin de le convertir, la valeur elle-même est un flottant approprié. Si vous devez l'afficher dans un format différent, formatez-le explicitement :
>>> print 0.00001357
1.357e-05
>>> print format(0.00001357, 'f')
0.000014
>>> print format(0.00001357, '.8f')
0.00001357
Ici, le format f
utilise toujours une notation à virgule fixe pour la valeur. La précision par défaut est de 6 chiffres; le .8
demande au formateur f
d'afficher à la place 8 chiffres.
Le format de chaîne par défaut est essentiellement le même que format(fpvalue, '.12g')
; le format g
utilise une présentation scientifique ou à virgule fixe en fonction de l'exposant du nombre.
Vous pouvez utiliser la mise en forme d'impression:
x = 1.357e-05
print('%f' % x)
Modifier:
print('%.08f' % x)