日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

poi 默认2位小数_odoo小数精确度

發布時間:2023/12/20 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 poi 默认2位小数_odoo小数精确度 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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": "增值稅17%進項稅",

"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

轉載注明原作者 /by Jeffery

總結

以上是生活随笔為你收集整理的poi 默认2位小数_odoo小数精确度的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。