python round()
函数

 
 

Python用于四舍五入的内建函数round() ,它的定义为

意思是,
将 小数部分保留到 ndigits 指定的 小数位,也就是 精度保持到 ndigits -1 位; 如果没有 指定 ndigits ,则 精度 保持到 整数位。

 
 

例如

 
 

n = 5.11965811966 直接 round 时, 精确度 为整数, 即 5.0 ; round(n, 5)时,小数位保留 5位,即 5.11966

 
 

 
 

odoo小数位数设置

 
 

在 odoo中,各业务模块设置了各自的精确度,
通过
模型 decimal.precision 定义
用于不同用途的
精确度【小数位数】, dp 模型
根据 name 返回
小数位数,
默认为 2位

 
 

常用的精确度用途如下

 
 

 
 

在定义模型的字段时,
通过 Fileds.float() 的属性 digits_compute 设置
小数位数,
例如

 
 

price_unit = fields.Float(string='Unit Price', required=True, digits=dp.get_precision('Product Price'))

 
 

通过 dp 类的方法 get_precision 读取
名为 product price 的精确度,
在此例,
读取的值
应是 3,
所以
采购单价
为 3位
小数位

 
 

 
 

 
 

税金与精确度

 
 

税金可以设置为
含税价,或者
未含税价

 
 

 
 

 
 

odoo 在计算
订单行的
未税金额,含税金额时,
会调用 account.tax 模型的
方法 compute_all() 进行
计算,
计算时
会以
名为 Account 的小数位数设置
作为 round() 方法的小数位数,
在此例
小数位
为 2 ,

税金为 17% 含税价 5.99,
返回

{

"taxes": [

{

"account_analytic_collected_id": false,

"account_analytic_paid_id": false,

"account_collected_id": 49,

"account_paid_id": 49,

"amount": 0.87,

"base_code_id": false,

"base_sign": 1.0,

"id": 2,

"name": "\u589e\u503c\u7a0e17%\u8fdb\u9879\u7a0e",

"price_unit": 5.119658119658119,

"ref_base_code_id": false,

"ref_base_sign": 1.0,

"ref_tax_code_id": false,

"ref_tax_sign": 1.0,

"sequence": 1,

"tax_code_id": false,

"tax_sign": 1.0,

"todo": 0

}

],

"total": 5.12,

"total_included": 5.99

}

 
 

算式
为 5.99 /1.17 = 5.11965811966

round(5.99/1.17, 2) = 5.12

 
 

 
 

在 compute_all() 方法中
预置了
个选项 round_globally,

 
 

启用
此选项时,
小数位数
增加 5位,
同样对于 5.99 /1.17 的处理,则更精确,
结果为 5.1196581

 
 

 
 

 
 

odoo小数精确度的更多相关文章

  1. Odoo小数精度及货币精度详解

    一.小数精度的设置 一般在设置-数据结构-精度设置中就可以对 小数类型的字段进行精度设置: 对于代码中定义为 digits=dp.get_precision('Product Price') 或 di ...

  2. 免费下载获取Odoo中文实施 应用 指南 手册

    引言 Odoo,以前叫OpenERP,是比利时Odoo S.A.公司开发的一个企业应用软件套件,开源套件包括一个企业应用快速开发平台,以及几千个Odoo及第三方开发的企业应用模块.Odoo适用于各种规 ...

  3. 关于C#时间格式化中的“f”

    示例: DateTime.Now.ToString("yyyyMMddHHmmssfff") 上面的示例就是将日期格式化到毫秒级.那么问题来了,格式化到微秒级.纳秒级怎么整?f又是 ...

  4. bc 命令

    bc命令是一种支持任意精度的交互执行的计算器语言.是Linux简单的计算器,能进行进制转换与计算.能转换的进制包括十六进制.十进制.八进制.二进制等.可以使用的运算符号包括(+)加法.(-)减法.(* ...

  5. BigDecimal的一些用法

    在多功能计算器项目中,计算器和单位换算功能都要求要有20位的精确度,并且要支持超大数,因此double类型就完全不够看了(double类型最多支持16位有效数字,且最大值只支持10^308次方),最后 ...

  6. js前端数据验证JS工具

    var regexEnum = { intege : "^-?[1-9]\\d*$", // 整数 intege1 : "^[1-9]\\d*$", // 正整 ...

  7. (03)odoo模型/记录集/公用操作

    -----------------更新时间11:17 2016-09-18 星期日11:00 2016-03-13 星期日09:10 2016-03-03 星期四11:46 2016-02-25 星期 ...

  8. mysql的时间戳timestamp精确到小数点后六位

    1.mysql的时间戳timestamp精确到小数点后六位. 公司业务使用到Greenplun数据库,根据查询的时间戳来不断的将每个时间段之间的数据,进行数据交换,但是今天发现,mysql的时间戳没有 ...

  9. c/c++ 整数除预算保留小数

    两个整数相除会自动省略小数点后的小数位即使下面这种: int a,int b; int a = 4; int b = 3; double d = a/b; d= 1.0000000; -------- ...

随机推荐

  1. python学习-- Django传递数据给JS

    var List = {{ List|safe }};//safe 必须存在

  2. 如何在 Rails 中搭配 Turbolinks 使用 Vue

    [Rails] Vue-outlet for Turbolinks 在踩了 Rails + Turbolinks + Vue 的許多坑後,整理  的作法並和大家分享. Initialize the A ...

  3. mybatis的嵌套查询(嵌套查询nested select和嵌套结果nested results查询)区别

    (转自:http://blog.csdn.net/canot/article/details/51485955) Mybatis表现关联关系比hibernate简单,没有分那么细致one-to-man ...

  4. hihoCoder #1246 王胖浩与环

    题目大意 $n$($1\le n\le 2000$)个正整数 $a_1, a_2, \dots, a_n$($a_i\le 5\times 10^7$)分布在一个圆环上. 定义 $b_k$ 为:将环上 ...

  5. Django notes I: collection of links to the Django document

    Links to the Django documents: the Django template language automatically generated context variable ...

  6. 升级springboot 2.x 踩过的坑——跨域导致session问题

    目前IT界主流前后端分离,但是在分离过程中一定会存在跨域的问题. 什么是跨域? 是指浏览器从一个域名的网页去请求另一个域名的资源时,域名.端口.协议任一不同,都是跨域. 做过web后台的童鞋都知道,跨 ...

  7. 利用node搭建本地服务器调试代码

    在命令符中输入 npm install -g live-server安装live-server 安装完成后在项目文件夹下打开cmd,输入live-server启动

  8. APUE 学习笔记(五) 进程环境

    1.main函数 C程序总是从main函数开始执行,当内核执行C程序时,在调用main函数之前先调用exec函数从内核获取命令行参数和环境变量值   2.进程终止 正常终止: (1)在main函数内执 ...

  9. 【bzoj4596】[Shoi2016]黑暗前的幻想乡 (矩阵树定理+容斥)

    Description 四年一度的幻想乡大选开始了,最近幻想乡最大的问题是很多来历不明的妖怪涌入了幻想乡,扰乱了幻想乡昔日的秩序.但是幻想乡的建制派妖怪(人类)博丽灵梦和八云紫等人整日高谈所有妖怪平等 ...

  10. angular关于依赖注入

    <html> <head> <title>Angular JS Forms</title> </head> <body> < ...