f = lambda x, n: round(x, n - len(str(int(x))));
網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了當(dāng)雄免費建站歡迎大家使用!
定義了一個方法f,用來實現(xiàn)你所說的功能。
輸入:
f(123.456789, 8)
輸出:
123.45678
輸入:
f(1.23456789, 8)
輸出:
1.2345679000000001
f接收2個參數(shù),第一個參數(shù)是要求有效位數(shù)的數(shù)字,第二個參數(shù)是設(shè)置有效位數(shù)。第二次輸出中的數(shù)字不夠準確,這跟python處理小數(shù)的方式有關(guān),如果想要準確的數(shù)字可以使用python decimal類。或者用python3k
擴展資料
#include?stdio.h
#define?C?"C?Programming"
int?main(void)
{
int?a=12345;
float?b=5.12345678;
char?e,d,f;
scanf("%c?%c?%c",e,d,f);
printf("int?is:%d\n",a);
printf("float?is:%f\n",b);
printf("char?is:%s\n",C);?
return?0;
}
1,對于浮點數(shù)
a=1.36852
a=round(a,2)
print a
#結(jié)果1.36
2,對于整數(shù)
from decimal import Decimal
a=1
a=Decimal(a).quantize(Decimal('0.00'))
print a
#結(jié)果1.00
3,通用方法
a=1
a=("%.2f" % a)
print a
#結(jié)果1.00
參考資料:百度百科 Python
百度百科 printf
import math
s = 4.65
maht.modf(s)[0] #modf(s)取出小數(shù)和整數(shù),[0]是取出小數(shù)部分,[1]是取出整數(shù)部分。
1、使用字符串格式化
大部分語言都可以使用字符串格式化的方法來實現(xiàn)保留兩位小數(shù)的效果,python也不例外:
a = 12.345
print("%.2f" % a) # %代表格式化輸出,.2代表小數(shù)點后保留兩位,f代表數(shù)據(jù)類型是浮點型
2、使用round內(nèi)置函數(shù)
python內(nèi)置了一個名為round的函數(shù),這個函數(shù)可以用來對數(shù)據(jù)進行格式化。代碼如下:
a = 12.345
a1 = round(a, 2) #將a通過round函數(shù)處理后賦值給a1.傳入的2代表保留兩位小數(shù)
print(a1)
3、使用decimal模塊
類似于java,python也專門提供了一個decimal模塊用于精確運算,它也可以進行數(shù)據(jù)的格式化輸出。代碼如下:
from decimal import Decimal
a = 12.345
Decimal(a).quantize(Decimal("0.00")) # 使用默認的進位方式(同round)“0.00”表示保留小數(shù)點后兩位
以上就是常規(guī)的保留兩位小數(shù)的方法,接下來介紹兩種非常規(guī)的方法(使用字符串處理的方法,這種方法僅保留兩位小數(shù),不做四舍五入)
4、使用序列切片
原理很簡單,只要找到小數(shù)點,然后進行切片即可。代碼如下:
a = 12.345
str(a).split('.')[0] + '.' + str(a).split('.')[1][:2]
#使用序列切片的方式,切出小數(shù)點前的數(shù)據(jù),還有小數(shù)點后兩位的數(shù)據(jù),然后進行拼裝
5、使用re模塊
類似于切片,不過這次使用正則匹配來定位小數(shù)點位置。
import re
a = 12.345
re.findall(r"\d{1.}?\.\d{2}", str(a))
#使用正則匹配,將符合規(guī)則(一個小數(shù)點前有很多位數(shù)字,小數(shù)點后面只有兩位數(shù)字的片段)字符串片段取出
方法1:用round函數(shù)
a=12.34567889
round(a,1)=12.3
#保留一位小數(shù)
方法2:格式化輸入
a=12.34567889
print(“%.1f”%a)
#保留一位小數(shù)
方法3:引入decimal函數(shù)
from decimal import Decimal
a=134.5657768
t=Decimal(“134.5657768”).quantize(Decimal(“0.0”))
print(t)
#輸出結(jié)果:1134.5
情況一:保留兩位小數(shù),并做四舍五入處理
1、使用字符串格式化
2、使用round內(nèi)置函數(shù)
情況二:保留兩位小數(shù),無需四舍五入處理
1、使用序列中切片
2、使用re模塊
網(wǎng)站名稱:python取小數(shù)函數(shù) python取小數(shù)部分函數(shù)
文章轉(zhuǎn)載:http://chinadenli.net/article34/dodegse.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、網(wǎng)站維護、手機網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計公司、域名注冊、網(wǎng)站設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)