對於python的初學者,通常情況下, 只需要輸出結果符合預期即可,所以通常情況下,print
就能夠滿足需求。
但是如果對於資料流轉的情況下,我一開始沒有找到合適的方法:
例如,我想把1.2000保留三位有效數字,如果按照其他方法:
a =
1.2345
print
(round
(a,3
))
輸出的結果是:
1.234
但是如果是要將1.2000保留三位有效數字呢:
a =
1.2000
print
(round
(a,3
))
結果:
1.2
所以round
就有其侷限性。
其他方式呢:
a =
1.2000
print
('%.2f'
%a)
結果:
1.20
但是如果是要求賦值怎麼辦,可以這樣寫:
a =
1.2000
b =(
'%.3f'
%a)print
(b)
結果:
1.200
a =
1.2000
b =(
'%.3f'
%a)print
("a:,type:1"
.format
(a,type
(a))
)print
("a:,type:1"
.format
(b,type
(b))
)
結果:
1.200
a:1.2
,type
:<
class
'float'
>1a:
1.200
,type
:<
class
'str'
>
1
這樣寫的話,資料型別會從float
變為str
,不注意的話在之後的呼叫的時候會報錯,如果後續需要使用float
型別的話,可以再轉化一次:
a =
1.2000
b =(
'%.3f'
%a)print
("a:,type:1"
.format
(a,type
(a))
)print
("a:,type:1"
.format
(b,type
(b))
)b =
float
(b)print
("a:,type:1"
.format
(b,type
(b))
)
結果:
a:
1.2,
type
:<
class
'float'
>1a:
1.200
,type
:<
class
'str'
>1a:
1.2,
type
:<
class
'float'
>
1
目前還沒有找到既能保留末尾的0,儲存足夠的小數點的數值型別的方法,如果有的話,請多多指教,萬分感謝。
小數的表達方式:
f''
# '00059.06' 08.2f 其中8是全部資料有8位(算上逗號),其中0是不足8位的在前面用0填充,
f''# ' 59.06' 無0的話不足8位的在前面用空填充。
f''# '123459.06' 如果全部資料比8大的話,會把小數點前的資料顯示出來不受8的限制。
整數:
'--'
.format(1
,2,3
)# 1-2-3
'--'
.format(1
,2,3
)# 3-2-1''.
format([
1,2,
3])# [1, 2, 3]
'--'
.format([
1,2,
3])# 1-2-3''.
format(1
)# '1'''.
format(1
)# '1.000000'''.
format(1
)# '1'''.
format(1
)# ' 1'''.
format(1
)# '001'''.
format(1
)# ' 1'
c 保留2位小數 整數時無小數
對數值儲存兩位小數,有時是整數時,不需要顯示兩位小數。例如值為 1.32 保留兩位,結果是1.32,值為 2,結果有兩種顯示,2和2.00 金額 public decimal tax amount 如是整數,則直接顯示整數 public string tax amountformat 如是整數,則後...
Python保留小數的方法
因總是忘記保留小數的方法,故在此做個總結。方法一 字串格式化 print 2f 1.255 1.25方法二 format函式方法 format函式有兩種寫法 1 使用佔位符 需注意佔位符和冒號不能丟 此方法可以一次輸出多個 print format 1.256,1.2635 1.26,1.2642 ...
SqlServer查詢時保留幾位小數的兩種做法
sqlserver保留幾位小數的兩種做法 資料庫裡的 float momey 型別,都會精確到多位小數。但有時候 我們不需要那麼精確,例如,只精確到兩位有效數字。解決 1.使用 round 函式,如 round num,2 引數 2 表示 保留兩位有效數字。2.更好的方法是使用 convert de...