A. 如何在python中保留小數
f = lambda x, n: round(x, n - len(str(int(x))));
定義了一個方法f,用來實現你所說的功能。
輸入:
f(123.456789, 8)
輸出:
123.45678
輸入:
f(1.23456789, 8)
輸出:
1.2345679000000001
f接收2個參數,第一個參數是要求有效位數的數字,第二個參數是設置有效位數。第二次輸出中的數字不夠准確,這跟python處理小數的方式有關,如果想要准確的數字可以使用python decimal類。或者用python3k
(1)pythonquantize擴展閱讀
#include<stdio.h>
#defineC"CProgramming"intmain(void)
{
inta=12345;floatb=5.12345678;
chare,d,f;
scanf("%c%c%c",&e,&d,&f);
printf("intis:%d ",a);
printf("floatis:%f ",b);
printf("charis:%s ",C);return0;
}
1,對於浮點數
a=1.36852
a=round(a,2)
print a
#結果1.36
2,對於整數
from decimal import Decimal
a=1
a=Decimal(a).quantize(Decimal('0.00'))
print a
#結果1.00
3,通用方法
a=1
a=("%.2f" % a)
print a
#結果1.00
B. python怎麼控制小數點位數比如float類型a=1.23456789,我想把a轉化為a=1.2345的形式,這個怎麼轉化呀
可以使用decimal模塊,decimal意思為十進制,這個模塊提供了十進制浮點運算支持。
常用方法
1.可以傳遞給Decimal整型或者字元串參數,但不能是浮點數據,因為浮點數據本身就不準確。
2.要從浮點數據轉換為Decimal類型
from decimal import *
Decimal.from_float(12.222)
# 結果為Decimal('12.')
3.通過設定有效數字,限定結果樣式:
from decimal import *
getcontext().prec=6
Decimal(1)/Decimal(7)
# 結果為Decimal('0.142857'),六個有效數字
4.四捨五入,保留幾位小數
from decimal import *
Decimal('50.5679').quantize(Decimal('0.00'))
# 結果為Decimal('50.57'),結果四捨五入保留了兩位小數
5.Decimal 結果轉化為string
from decimal import *
str(Decimal('3.40').quantize(Decimal('0.0')))
# 結果為'3.40',字元串類型
Python提供了decimal模塊用於十進制數學計算,它具有以下特點:
提供十進制數據類型,並且存儲為十進制數序列;
有界精度:用於存儲數字的位數是固定的,可以通過decimal.getcontext().prec=x 來設定,不同的數字可以有不同的精度
浮點:十進制小數點的位置不固定(但位數是固定的)
Python-網路
C. python輸出怎麼保留兩位小數
python輸出保留兩位小數的四種方法:
a = 5.5461
方法一:round(a,2)
方法二:float('%.2f' % a)
相關推薦:《Python視頻教程》
方法三:『%.2』 %a
方法四:
from decimal import Decimal
Decimal('5.026').quantize(Decimal('0.00'))
當需要輸出的結果要求有兩位小數的時候,字元串形式的:'%.2f' % a 方式最好,其次用Decimal。
需要注意的:
1. 可以傳遞給Decimal整型或者字元串參數,但不能是浮點數據,因為浮點數據本身就不準確。
2. Decimal還可以用來限定數據的總位數。以上就是小編分享的關於python輸出怎麼保留兩位小數的詳細內容希望對大家有所幫助,更多有關python教程請關注環球青藤其它相關文章!
D. Python 為什麼不解決四捨五入的「bug」
四捨五入是基於十進制的,在二進制無法精確表示的時候是會有誤差的。
任何需要十進制運算的地方,都需要用 decimal.Decimal 取代 float:
>>> Decimal(1.45)
Decimal('1.')
>>> Decimal('1.45')
Decimal('1.45')
>>> Context(prec=2, rounding=ROUND_HALF_UP).create_decimal('1.45')
Decimal('1.5')
>>> Decimal('1.45').normalize(Context(prec=2, rounding=ROUND_HALF_UP))
Decimal('1.5')
>>> Decimal(Decimal('1.45').quantize(Decimal('.1'), rounding=ROUND_HALF_UP))
Decimal('1.5')
不過使用十進制運算的代價就是慢,所以各取所需吧。
E. python 小數位數不同,為什麼decimal四捨五入結果不一致
float('{:.2f}'.format(price_t))
這樣只是取兩位小數並沒有四捨五入
四捨五入有一個專門的函數round,下面是正確的用法
round(float(price_t), 2)
F. python模塊導入問題
我的沒問題啊。我用的是Anaconda3(python3.6.1),安裝tensorflow後有這個模塊。
建議你重新安裝tensorflow,安裝方式:
pip install -i https://mirrors.aliyun.com/pypi/simple/ tensorflow
G. python中保留兩位小數怎麼表示
這里有三種方法,
round(a,2)'%.2f' % aDecimal('5.000').quantize(Decimal('0.00'))
當需要輸出的結果要求有兩位小數的時候,字元串形式的:'%.2f' % a 方式最好,其次用Decimal。
需要注意的:
1. 可以傳遞給Decimal整型或者字元串參數,但不能是浮點數據,因為浮點數據本身就不準確。
2. Decimal還可以用來限定數據的總位數。
談談關於Python裡面小數點精度控制的問題
基礎
浮點數是用機器上浮點數的本機雙精度(64 bit)表示的。提供大約17位的精度和范圍從-308到308的指數。和C語言裡面的double類型相同。Python不支持32bit的單精度浮點數。如果程序需要精確控制區間和數字精度,可以考慮使用numpy擴展庫。
Python 3.X對於浮點數默認的是提供17位數字的精度。
關於單精度和雙精度的通俗解釋:
單精度型和雙精度型,其類型說明符為float 單精度說明符,double 雙精度說明符。在Turbo C中單精度型佔4個位元組(32位)內存空間,其數值范圍為3.4E-38~3.4E+38,只能提供七位有效數字。雙精度型佔8 個位元組(64位)內存空間,其數值范圍為1.7E-308~1.7E+308,可提供16位有效數字。
相關教程推薦:Python視頻教程以上就是小編分享的關於python中保留兩位小數怎麼表示的詳細內容希望對大家有所幫助,更多有關python教程請關注環球青藤其它相關文章!
H. python保留一位小數怎麼表示
方法1:用round函數
a=12.34567889
round(a,1)=12.3
#保留一位小數
方法2:格式化輸入
a=12.34567889
print(「%.1f」%a)
#保留一位小數
方法3:引入decimal函數
from decimal import Decimal
a=134.5657768
t=Decimal(「134.5657768」).quantize(Decimal(「0.0」))
print(t)
#輸出結果:1134.5
I. python quantize result has too many digits for current context怎麼回事
這只是一個猜測,但我敢打賭,你需要把小數點在那裡:
WORK_HOUR_CHOICES = (
(Decimal("0"), '0'),
(Decimal("0.5"), '0.5'),
(Decimal("1"), '1'),
(Decimal("1.5"), '1.5'),
(Decimal("2"), '2'),
(Decimal("2.5"), '2.5')
)
你不能初始化一個小數與浮恆,你必須使用一個字元串。
>>> from decimal import Decimal
>>> Decimal(1.5)
Traceback (most recent call last):
File "<stdin>", line 1, in <mole>
File "C:\software\Python25\lib\decimal.py", line 578, in __new__
"First convert the float to a string")
TypeError: Cannot convert float to Decimal. First convert the float to a string
>>> Decimal("1.5")
Decimal("1.5")
J. python編程這個怎麼弄
分段函數的代碼用python實現如下:
x=eval(input('輸入x的值:'))
if x!=0:
y=1/(2*x-1)
else:
y=0
print(y)