python中四舍五入进位不准,自己写了个方法结果:
def new_round(_float, _len):
'''
四舍五入保留小数位,如果想实现 0.2 显示为 0.20,可使用 '%.2f' % num 实现
:param _float:
:param _len: 保留的小数位
:return:
'''
_float=float(_float)
if len(str(_float).split('.')[1])<= _len:
return round(_float, _len)
elif str(_float)[-1] == '':
return round(float(str(_float)[:-1] + ''), _len)
else:
return round(_float, _len)
print('-0.1535' , '=', new_round(-0.15355, 2))
print('-0.2500', '=', new_round(-0.2500, 2))
print('0.453', '=', new_round(0.453, 2))
print('0.5500', '=', new_round(0.5500, 2))
# 如果想实现 0.2 显示为 0.20,可使用 '%.2f' % num 实现
print('291.818500', '=', '%.5f' % new_round(291.818500, 5))

输出:  

-0.1535 = -0.15
-0.2500 = -0.25
0.453 = 0.45
0.5500 = 0.55
291.818500 = 291.81850


# 处理科学计算法记录的数据 如:1.23333e-5
import math
n = 10
demical_num = 7 #需要保留的小数位数
data_value = 0.0001/3 #需要保留的小数
print(data_value) # 输出3.3333333333333335e-05
decimal_digit = '%.'+str(demical_num)+'f'
for i in range(demical_num+1):
n = n*10
if float(data_value) < 0:
data_value1 = math.ceil(float(data_value) * n)
else:
data_value1 = math.floor(float(data_value) * n)
data_value2 = data_value1/n
decimal_data = decimal_digit % new_round(float(data_value2), demical_num)
print(decimal_data) # 输出 0.0000033

python 四舍五入进位不准的更多相关文章

  1. Codeforces Round #373 (Div. 2) A B C 水 贪心 模拟(四舍五入进位)

    A. Vitya in the Countryside time limit per test 1 second memory limit per test 256 megabytes input s ...

  2. python 使用demical模块四舍五入

    前言: 断言部分需要用到四舍五入,首先使用的是python自带的round(),做四舍五入进位处理,但使用过程中,发现round似乎是当保留小数位的最后一位是偶数,和保留小数位后一位为5时,就不进位. ...

  3. [Python]round四舍五入精度缺失的解决

    环境: os: win7 64bit python:2.7.5  32bit 对python四舍五入的解决方案 现象: 一般的四舍五入操作都是使用内置的round方法   In [14]: round ...

  4. python数据精度问题

    一.python运算时精度问题: 1.运行时精度问题在Python中(其他语言中也存在这个问题,这是计算机采用二进制导致的),有时候由于二进制和十进制之间对应问题会导致数值的精度问题,比如无法用有限个 ...

  5. Jinja2学习笔记暨官方文档的翻译

    http://blog.csdn.net/lgg201/article/details/4647471 呵呵, 刚刚看完Python模板引擎Jinja2的文档, 感觉很好, 觉得动态语言真是很好.  ...

  6. oracle数据库中的基本语句

    下面的都是最基本的oracle数据库的数据查询语句,这是我在网上整理的一份文档,方便以后自己的查看,当然,能把这些记下来就是最好的. 说明:查询表中的数据 1. select * from emp; ...

  7. Oracle 经典SQL 专为笔试准备

    相信把这99条sql搞定,Oracle基本笔试简直就像玩的一样(史上最全,最经典的入门级Oracle查询语句) 1. select * from emp; 2. select empno, ename ...

  8. oracle数据库常用的99条查询语句(转载)

    1. select * from emp; 2. select empno, ename, job from emp; 3. select empno 编号, ename 姓名, job 工作 fro ...

  9. jinja2模板常用方法

    数学运算+,-,*,/,**,//,%等数学运算符都支持. 逻辑运算and,or,not也同样支持 1.in判断元素是否在集合中 2.|管道操作符,默认使用Apply调用一个方法 3.~字符串连接 4 ...

随机推荐

  1. Consul zookeeper etcd eureka

    这里就平时经常用到的服务发现的产品进行下特性的对比,首先看下结论: Feature Consul zookeeper etcd eureka 服务健康检查 服务状态,内存,硬盘等 (弱)长连接,kee ...

  2. 胜利点20191010-6 alpha week 1/2 Scrum立会报告+燃尽图 04

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2019fall/homework/8749 一.小组情况组长:贺敬文组员:彭思雨 王志文 位军营 杨萍队名:胜 ...

  3. Python对字典分别按键(key)和值(value)进行排序

    使用sorted函数进行排序 sorted(iterable,key,reverse),sorted一共有iterable,key,reverse这三个参数;其中iterable表示可以迭代的对象,例 ...

  4. echarts_02

    1. 如果数据加载时间较长,一个空的坐标轴放在画布上也会让用户觉得是不是产生 bug 了,因此需要一个 loading 的动画来提示用户数据正在加载. ECharts 默认有提供了一个简单的加载动画. ...

  5. TensorFlow常用操作

    初始化数据: # -*- coding: utf-8 -*- import tensorflow as tf a = tf.zeros([3, 4], tf.int32) # [[0 0 0 0] # ...

  6. PADS常用画板过程

    转载:PADS LAYOUT的一般流程 http://www.doc88.com/p-9129306856292.html https://wenku.baidu.com/view/cc4e0b338 ...

  7. leetcode 105从前序与中序遍历序列构造二叉树

    方法一:直接使用复制的数据递归:O(n)时间,O(n)空间,不计算递归栈空间: /** * Definition for a binary tree node. * struct TreeNode { ...

  8. Struts2-Ajax整合之Jquery版本

    <纯JavaScript版本  http://www.cnblogs.com/hzb462606/p/8934787.html  > 大部门跟JavaScript版本一致,就是<sc ...

  9. samba安装应用实例-1

    应用实例:先安装samba软件,yum install -y samba1.需求:共享一个目录,任何人都可以访问,不用输密码,只读.(1)首先打开samba配置文件/etc/samba/smb.con ...

  10. 阶段3 2.Spring_10.Spring中事务控制_1 基于XML的AOP实现事务控制

    新建项目 首先把依赖复制进来 aop必须引入.aspectjweaver 复制src下的所有内容 复制到我们的新项目里面 factory文件夹删掉 删除后测试类必然就报错 配置文件 beanFacto ...