Меня немного смутили некоторые вещи, которые показали другие люди, поэтому я сделал код ниже. Он округляется до второго десятичного знака, например. «23,56 миллиарда», но вы можете изменить десятичный разряд, до которого оно округляется, заменив два «100,0» в последней строке большим или меньшим числом, например. '10.0' округляется до одного десятичного знака, а '1000.0' округляется до трех десятичных знаков. Кроме того, используя этот код, он всегда округляется в меньшую сторону от того, что есть на самом деле. Вы можете изменить это, если хотите, заменив «пол» на «потолок» или «круглый».
#make the dictionary to store what to put after the result (ex. 'Billion'). You can go further with this then I did, or to wherever you wish.
#import the desired rounding mechanism. You will not need to do this for round.
from math import floor
magnitudeDict={0:'', 1:'Thousand', 2:'Million', 3:'Billion', 4:'Trillion', 5:'Quadrillion', 6:'Quintillion', 7:'Sextillion', 8:'Septillion', 9:'Octillion', 10:'Nonillion', 11:'Decillion'}
def simplify(num):
num=floor(num)
magnitude=0
while num>=1000.0:
magnitude+=1
num=num/1000.0
return(f'{floor(num*100.0)/100.0} {magnitudeDict[magnitude]}')
«f» перед строкой в последней строке означает, что python знает, что вы его форматируете. Результат запуска print(simplify(34867123012.13)) таков:
34.86 Billion
Пожалуйста, дайте мне знать, если у вас есть вопросы! Спасибо, Ангус
person
Angus The Car
schedule
05.12.2020