python賦值時保留小數(末尾的0)

2021-09-28 22:00:09 字數 2643 閱讀 5512

對於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...