python3 四舍五入(0.5可以进1)
2024-09-28 03:39:56
今天做了一个题要求四舍五入,然后找了一个方法:round()可以四舍五入,
试了试1.5---》2
试了试0.5---》0 !!!!
找了几个方法说可以的:
# 方法一:
from _pydecimal import Decimal, Context, ROUND_HALF_UP
print(Context(prec=, rounding=ROUND_HALF_UP).create_decimal('1.32545454544'))
# 方法二:
print(round(1.32545454544* ) / 100.0) 输出: 1.33
但是!!但是!!但是!!
输入0.5结果是0.5 ( 这个可以通过设置格式得到,原来不知道)
没办法,对于有些可以,有些不可以,主要是存储十进制的时候二进制有偏差,怎么办!?
这里我自己鼓捣出一个方法(在数后面加一个很小的数,不影响计算的那种如:0.000000000001)
print(round(0.5+0.00000000000001))
结果 1
另外可以用下面方法:
========================================================最新更新===================================================================== decimal函数使用:
decimal()函数是用于十进制精确计算的,为的是防止浮点数后面位数不准确导致计算结果出现偏差
prec : 设置精度(有效数字位数)
rounding : 设置舍入舍出方式
有多种方法
ROUND_CEILING (towards Infinity),
ROUND_DOWN (towards zero),
ROUND_FLOOR (towards -Infinity),
ROUND_HALF_DOWN (to nearest with ties going towards zero),
ROUND_HALF_EVEN (to nearest with ties going to nearest even integer),
ROUND_HALF_UP (to nearest with ties going away from zero), or
ROUND_UP (away from zero).
ROUND_05UP (away from zero if last digit after rounding towards zero would have been 0 or 5; otherwise towards zero)
设定小数位数
Decimal('1.2346568355').quantize(Decimal('0.00'))
设定有效数字
getcontext().prec = 4
参考:
https://blog.csdn.net/qq_34979346/article/details/83827044
https://www.cnblogs.com/piperck/p/5843253.html
https://finthon.com/python-decimal/
最新文章
- RMS:不能对生产服务器使用测试清单
- Winsock 入门 判读主机字节序 示例
- 【BZOJ】1119: [POI2009]SLO
- [Aaronyang] 写给自己的WPF4.5 笔记23 [3d交互与动画 4/4]
- iOS 工作遇到问题记录
- projecteuler Smallest multiple
- 【Qt】Qt之进程间通信(Windows消息)【转】
- visual studio 2015预览版系统需求
- BZOJ 2115: [Wc2011] Xor [高斯消元XOR 线性基 图]
- C++删除文件末尾字符
- offset系列,client系列,scroll系列回顾
- 多阶段构建Docker镜像
- BZOJ4817[Sdoi2017]树点涂色——LCT+线段树
- Java基础系列--instanceof关键字
- <;20190103>;别傻了,一些 新的技术注定只适合新人
- 迭代器_iter_,生成器yeild,三元运算,列表解析(十三)
- shell中函数返回值
- 在Web根目录下建立testdb.php文件内容
- java 泛型中class<;T>; 和T的区别是什么?
- sprintf 函数