十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
简单的说,round是使用四舍五入对小数进行位数控制的函数,
创新互联主营马龙网站建设的网络公司,主营网站建设方案,重庆APP开发,马龙h5小程序开发搭建,马龙网站营销推广欢迎马龙等地区企业咨询
round(a, b), a参数是小数,b是小数点后保留的位数。
实际使用需要考虑的python2和python3版本的差异与小数精度的问题。
参考
它是内置函数。build-in,应该是C语言的。用的应该是 c的library
在python2.73.源码中
有这样一句。pymath.h:extern double round(double);
在pymath.c中定义如下:
#ifndef HAVE_ROUND
double
round(double x)
{
double absx, y;
absx = fabs(x);
y = floor(absx);
if (absx - y = 0.5)
y += 1.0;
return copysign(y, x);
}
方法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
说明:format函数就是一种" 特殊的占位符 "!但输出多个数据时,用format占位符比直接用字符串中的占位符要方便一些。
用format函数控制输出的小数点位数(满足4舍5入):
补充:format的4舍5入功能,和round(a, num)实现功能是一样的!
参数说明:a是待判断的数(只能是一个数,不能是列表或其他容器类型);num是保留位数。
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
扩展资料
#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,对于浮点数
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
参考资料:百度百科 Python
百度百科 printf
这可以分两种情况分析:
1
如果直接丢弃小数部分,只保留整数部分的话,可以使用int函数。
2
如果要求小数部分对整数部分有进位,可以使用round函数。
下面是一个例子:
print(int(12.3),int(12.4))
print(int(12.5),int(12.6))
print(int(12.7),int(12.8))
print(round(12.3))
print(round(12.4))
print(round(12.5))
print(round(12.6))
print(round(12.7))
print(round(12.8))