亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在Python中將數字舍入為有效數字

如何在Python中將數字舍入為有效數字

溫溫醬 2019-08-02 13:56:03
如何在Python中將數字舍入為有效數字我需要對浮點數進行舍入以在UI中顯示。例如,一個重要人物:1234 - > 10000.12 - > 0.10.012 - > 0.010.062 - > 0.066253 - > 60001999年 - > 2000年有沒有一種很好的方法可以使用Python庫來實現這一點,還是我必須自己編寫?
查看完整描述

3 回答

?
qq_遁去的一_1

TA貢獻1725條經驗 獲得超8個贊

您可以使用負數來舍入整數:


>>> round(1234, -3)

1000.0

因此,如果您只需要最重要的數字:


>>> from math import log10, floor

>>> def round_to_1(x):

...   return round(x, -int(floor(log10(abs(x)))))

... 

>>> round_to_1(0.0232)

0.02

>>> round_to_1(1234243)

1000000.0

>>> round_to_1(13)

10.0

>>> round_to_1(4)

4.0

>>> round_to_1(19)

20.0

如果它大于1,你可能需要注意將float轉換為整數。


查看完整回答
反對 回復 2019-08-02
?
qq_花開花謝_0

TA貢獻1835條經驗 獲得超7個贊


字符串格式化中的%g將浮動格式化為一些有效數字。它有時會使用'e'科學記數法,因此將圓形字符串轉換回浮點數然后通過%s字符串格式轉換。


>>> '%s' % float('%.1g' % 1234)

'1000'

>>> '%s' % float('%.1g' % 0.12)

'0.1'

>>> '%s' % float('%.1g' % 0.012)

'0.01'

>>> '%s' % float('%.1g' % 0.062)

'0.06'

>>> '%s' % float('%.1g' % 6253)

'6000.0'

>>> '%s' % float('%.1g' % 1999)

'2000.0'


查看完整回答
反對 回復 2019-08-02
?
慕仙森

TA貢獻1827條經驗 獲得超8個贊

如果你想得到除1個有效小數以外的其他小數(否則與Evgeny相同):


>>> from math import log10, floor

>>> def round_sig(x, sig=2):

...   return round(x, sig-int(floor(log10(abs(x))))-1)

... 

>>> round_sig(0.0232)

0.023

>>> round_sig(0.0232, 1)

0.02

>>> round_sig(1234243, 3)

1230000.0


查看完整回答
反對 回復 2019-08-02
  • 3 回答
  • 0 關注
  • 1902 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號