有效數字修約,按四捨六入五成雙原則

2021-10-20 09:38:55 字數 2746 閱讀 7689

# 定義函式修約小數字數,按四捨六入五成雙的原則

deflittle

(x,y)

:# x是要修約的數,y是要保留的小數字數。

abs_x =

abs(x)

# 取x的絕對值

str_x =

str(abs_x)

# 字串x的絕對值

len_x =

len(str_x)

# 計算x字串的長度

point_x = str_x.find(

'.')

# 尋找x字串中的小數點

if point_x ==-1

:# 如果要修約的數是整數,格式化輸出,自動補零

result =

'%'+

'.'+

str(y)

+'f'

print

(x,'修約有效數字為:'

, result % x)

else

:# 如果要修約的數是浮點數

index_point = str_x.index(

'.')

# 找到小數點所在的引索位置

x1 =

int(abs_x *

10** y)

# 整數化輸出x絕對值*10的y次方

bb = len_x -

(index_point+1)

-(y+1)

# 用於判斷x的小數字數是否與需要保留的小數字數一致,避免二進位制計算問題

# 如:print(10.05*100-int(10.05*10)*10) 輸出結果為: 5.000000000000114,而不是 5

if bb ==0:

x2 =

int(abs_x*

10**

(y+1))

- x1*

10else

: x2 = abs_x*

10**

(y+1

)- x1*

10# 提取需要修約的數字,判斷四捨六入五成雙

if x2 <5:

num = x1

if x2 >5:

num = x1 +

1if x2 ==5:

if x1 %2==

0:num = x1

else

: num = x1 +

1 abs_result = num/

10**y

result =

'%'+

'.'+

str(y)

+'f'

#格式化輸出自動補零

if x>=0:

print

(x,'修約有效數字為:'

, result % abs_result)

else

:print

(x,'修約有效數字為:'

, result %

-abs_result)

# 定義函式,修約數值的有效數字

defsignificant

(w,v)

:# w是要修約的數字,v是需要保留的有效數字個數

abs_w =

abs(w)

str_w =

str(abs_w)

len_w =

len(str_w)

# 計算x字串的長度

point_w = str_w.find(

'.')

# 尋找x字串中的小數點

if point_w ==-1

:# 如果要修約的數是整數,格式化輸出,自動補零

result =

'%'+

'.'+

str(v-len_w)

+'f'

print

(w,'修約有效數字為:'

, result % w)

else

:if abs_w >=1:

# 如果要修約的數是大於1的浮點數

index_point = str_w.index(

'.')

# 確定小數點所在位置

v = v - index_point # 確定要取的小數字數

little(w,v)

# 按四捨六入五成雙的原則修約

if abs_w <1:

# 如果要修約的數是小於1的浮點數,判斷小數點後面有多少個零

len_w =

len(str_w)

n = len_w -

2# 計算要修約的數字的小數字數

w1 =

int(abs_w*

10**n)

# 把小數變整數

len_w1 =

len(

str(w1)

)# 計算不為零的數的長度

v = v +

(n - len_w1)

# 反推前面有多少個零,然後確定實際要取的小數字數

little(w,v)

significant(-10

,3)# 輸出 -10.0

significant(

-10.05,3

)# 輸出 -10.0

significant(

-0.550,1

)# 輸出 -0.6

significant(

0.0055,1

)# 輸出 0.006

四捨六入五成雙

四捨六入五成雙 對於位數很多的近似數,當有效位數確定後,其後面多餘的數字應該捨去,只保留有效數字最末一位,這種修約 捨入 規則是 四捨六入五成雙 也即 4舍6入5湊偶 這裡 四 是指 4 時捨去,六 是指 6時進上,五 指的是根據5後面的數字來定,當5後有數時,舍5入1 當5後無有效數字時,需要分兩...

四捨六入五成雙

四捨六入五成双是一種精確度的計數保留法.捨入規律是 四捨六入五成雙 這裡 四 是小於五的意思,六 是大於五的意思,五 是捨入位之後的尾數逢五的話看前一位,奇進偶不進,就像1.25,因為2是偶數,所以是1.2。又像1.35,因為3是奇數,所以是1.4,明不明白,這個是資料統計需要的.從統計學的角度,四...

java 四捨六入五成雙

四捨六入五成雙的規則 1.被修約的數字小於5時,該數字捨去 2.被修約的數字大於5時,則進製 3.被修約的數字等於5時,要看5前面的數字,若是奇數則進製,若是偶數則將5捨掉,即修約後末尾數字都成為偶數 若5的後面還有不為 0 的任何數,則此時無論5的前面是奇數還是偶數,均應進製。舉例,用上述規則對下...