>>> def remove_exponent(d): ... return d.quantize(Decimal(1)) if d == d.to_integral() else d.normalize()
>>> remove_exponent(Decimal('5E+3'))
Decimal('5000')
前面分離字串、奇數偶數相加、相減都還OK,主要卡在最後一關,輸出整數不包含小數點、輸出浮點數又要不包含尾數的0
我以為使用Decimal就可以快速通關,但浮點數的尾數會包含不必要的零、過大的整數會變成指數形式
仔細詳閱官方文件後找到這樣的程式片段,可以解決如上問題
>>> def remove_exponent(d): ... return d.quantize(Decimal(1)) if d == d.to_integral() else d.normalize()
>>> remove_exponent(Decimal('5E+3')) Decimal('5000')
用 Format Specification Mini-Language 的 g(generic) 就可以了,如下:
print(f'{x:g}')
前面分離字串、奇數偶數相加、相減都還OK,主要卡在最後一關,輸出整數不包含小數點、輸出浮點數又要不包含尾數的0
我以為使用Decimal就可以快速通關,但浮點數的尾數會包含不必要的零、過大的整數會變成指數形式
仔細詳閱官方文件後找到這樣的程式片段,可以解決如上問題
>>> def remove_exponent(d): ... return d.quantize(Decimal(1)) if d == d.to_integral() else d.normalize()
>>> remove_exponent(Decimal('5E+3')) Decimal('5000')
用 Format Specification Mini-Language 的 g(generic) 就可以了,如下:
print(f'{x:g}')