Python 浮點型精度問題

2022-09-04 20:00:16 字數 691 閱讀 7292

目錄

print(0.1+0.2)

print(0.1+0.1+0.1-0.2)

print(0.1+0.1+0.1-0.3)

輸出:

0.30000000000000004

0.10000000000000003

5.551115123125783e-17

出現這種精度問題:因為十進位制與二進位制的相互轉換(計算機只認識二進位制,將十進位制轉換為二進位制,十進位制0.1轉換為二進位制,是無限迴圈的,無法精確)。

decimal.decimal():十進位制模組。

import decimal

a = decimal.decimal('0.1')

b = decimal.decimal('0.2')

print(a+b)

# 0.3

fraction():分數模組。

from fractions import fraction

print(10/3)

print(fraction(10, 3))

輸出:

3.3333333333333335

10/3

浮點型精度分析

科學計數法1.233e23,e大概是exponent指數,階碼。分為三部分,整數部分為1的因數,e是進製階數,後邊是指數二進位制和十進位制轉換 二進位制轉10進製自然語言中以十進位制為主,將十進位製作為基座標更加容易理解 例二進位制 1.1 十進位制 加權係數展開 整數部分 1 2 小數部分 1 2...

浮點型資料的精度控制問題

time limit 1 sec memory limit 16 mb submit 2380 solved 392 submit status web board 兩點確定一條直線,判斷一條直線與乙個圓的位置關係。輸入中前兩行每行描述乙個點的座標 x,y x,y均為實數。第三行包含三個實數,即圓心...

什麼叫單精度浮點型?什麼叫雙精度浮點型?

引用一寫道 單精度浮點型 float 專指占用32位儲存空間的單精度 single precision 值。單精度在一些處理器上比雙精度更快而且只占用雙精度一半的空間,但是當值很大或很小的時候,它將變得不精確。當你需要小數部分並且對精度的要求不高時,單精度浮點型的變數是有用的。例如,當表示美元和分時...