# 定義函式修約小數字數,按四捨六入五成雙的原則
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的前面是奇數還是偶數,均應進製。舉例,用上述規則對下...