第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

打印浮點(diǎn)數(shù)到n個(gè)小數(shù)位,包括尾隨0

打印浮點(diǎn)數(shù)到n個(gè)小數(shù)位,包括尾隨0

慕慕森 2019-11-18 18:19:20
我需要打印或?qū)⒏↑c(diǎn)數(shù)轉(zhuǎn)換為15個(gè)小數(shù)位字符串,即使結(jié)果中有許多尾隨0,例如:1.6變成1.6000000000000000我嘗試了round(6.2,15),但它返回6.2000000000000002添加了舍入錯(cuò)誤我還在線上看到各種各樣的人,他們將浮點(diǎn)數(shù)放入字符串中,然后手動(dòng)添加尾隨0,但這似乎很糟糕。做這個(gè)的最好方式是什么?
查看完整描述

3 回答

?
互換的青春

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊

對(duì)于2.6+和3.x中的Python版本

您可以使用該str.format方法。例子:


>>> print('{0:.16f}'.format(1.6))

1.6000000000000001


>>> print('{0:.15f}'.format(1.6))

1.600000000000000

注意1,第一個(gè)示例末尾的是舍入誤差;之所以會(huì)發(fā)生這種情況,是因?yàn)榫_表示十進(jìn)制數(shù)1.6要求使用無限個(gè)二進(jìn)制數(shù)字。由于浮點(diǎn)數(shù)的位數(shù)是有限的,因此該數(shù)字將四舍五入為一個(gè)相鄰的值,但不相等。


對(duì)于2.6之前的Python版本(至少回到2.0)

您可以使用“模格式”語法(這也適用于Python 2.6和2.7):


>>> print '%.16f' % 1.6

1.6000000000000001


>>> print '%.15f' % 1.6

1.600000000000000


查看完整回答
反對(duì) 回復(fù) 2019-11-18
?
人到中年有點(diǎn)甜

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超7個(gè)贊

我想這實(shí)際上是將其放入字符串中,但這避免了舍入錯(cuò)誤:


import decimal


def display(x):

    digits = 15

    temp = str(decimal.Decimal(str(x) + '0' * digits))

    return temp[:temp.find('.') + digits + 1]


查看完整回答
反對(duì) 回復(fù) 2019-11-18
  • 3 回答
  • 0 關(guān)注
  • 464 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)