iT邦幫忙

0

Python 小數位數

Ks 2019-11-25 11:29:0112716 瀏覽

請問python要如何獲取固定小數位數,

比如0.1234567

我想取0.123而已,但是不需要四捨五入。

謝謝

froce iT邦大師 1 級 ‧ 2019-11-25 11:35:01 檢舉
https://blog.techbridge.cc/2019/05/03/how-to-use-python-string-format-method/
然後再把字串轉回float
ccutmis iT邦高手 2 級 ‧ 2019-11-25 13:09:46 檢舉
a=0.1234567
print(str(a)[:str(a).find('.')+4])
#output 0.123
Ks iT邦新手 3 級 ‧ 2019-11-25 14:59:20 檢舉
謝謝答复~
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
2
listennn08
iT邦高手 5 級 ‧ 2019-11-25 11:46:33
最佳解答

float('{:.3f}'.format(0.123456))

2
小魚
iT邦大師 1 級 ‧ 2019-11-25 11:34:33

最傳統的做法就是

1. * 1000
2. 取整數(預設會捨棄小數, 正確來說是小於等於的整數, 所以如果是負數會多1, -1.5 會變成 -2)
3. / 1000

說不定他們背後也都是這樣做的,
這樣就不需要看語言本身有沒有提供,
自己就可以寫一個Function任何語言都可以拿來用,
只要改一下語法就好.

1
舜~
iT邦高手 1 級 ‧ 2019-11-25 11:34:41

math.floor( x * 1000 )/1000

簡單說就是先 * 1000 然後用無條件捨去法捨棄小數,再復原 /1000

我對python不熟,如果捨棄小數是透過轉成整數int來實現的話,留意除1000後是否還是整數int或是恢復浮點數float

1
阿展展展
iT邦好手 1 級 ‧ 2019-11-25 12:00:24
float('你需要幾位數'.format(原本的數))

我要發表回答

立即登入回答