我正在尝试存储
x=9999999999999.9999999999
在字符串变量中。但是它正在四舍五入。
c=str(9999999999999.9999999999)
print c
'1e+13'
我在这里尝试读取JSON文件并将其转换为CSV ...
但是在读取9999999999999.9999999999
时会自动将其转换为1e+13.
with open(inputfilename) as json_file:
data = json.load(json_file)
selected_month=str(data['selected_month'])
selected_year=str(data['selected_year'])
record_count=str(data['record_count'])
for p in data['monthly_rates']:
source_iso_currency_cd=p['source_iso_currency_cd']
target_iso_currency_cd=p['target_iso_currency_cd']
source_currency_cd=p['source_currency_cd']
target_currency_cd=p['target_currency_cd']
indirect_rate=p['indirect_rate']
if indirect_rate == None:
o_indirect_rate=""
else:
o_indirect_rate=repr(indirect_rate)
direct_rate=p['direct_rate']
if direct_rate == None:
o_direct_rate=""
else:
o_direct_rate=repr(direct_rate)
average_rate=p['average_rate']
if average_rate == None:
o_average_rate=""
else:
o_average_rate=repr(average_rate)
o_str1=record_count+','+selected_month+','+selected_year+','+source_iso_currency_cd+','+target_iso_currency_cd+','+source_currency_cd+','+target_currency_cd+','+o_indirect_rate+','+o_direct_rate+','+o_average_rate
答案 0 :(得分:0)
json
通常将浮点数解析为Python的浮点数,这不能代表您想要的精度。
使用内置的decimal
或其他库,例如mpmath
包的任意精度浮点数。您将需要告诉json
使用其他函数来解析浮点数。
from decimal import Decimal
json.load(json_file, parse_float=Decimal)