python之decimal

这篇具有很好参考价值的文章主要介绍了python之decimal。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

decimal是python的标准库之一,我们通常用它来进行浮点数的运算和比较。

为什么需要使用decimal

因为使用浮点数计算比较会有误差,请看下面的例子

a1 = 1.01
b1 = 1.02

if a1+b1 == 2.03:
    print('ok')
else:
    print('no')
# 有精度的误差
print(a1+b1)

结果:

no
2.0300000000000002

decimal实现

我们建议浮点数的运算和比较采用Decimal来实现

from decimal import Decimal
a2 = Decimal('1.01')
b2 = Decimal('1.02')

if a2+b2 == Decimal('2.03'):
    print('ok')
else:
    print('no')
print(a2+b2)
print(type(a2+b2))

结果:

ok
2.03
<class 'decimal.Decimal'>

注意事项

Decimal初始化值必须是数字字符串或者是整数,浮点数的要转成字符串后才传入

print(Decimal('1.01'))
print(Decimal(1.01))

结果:文章来源地址https://www.toymoban.com/news/detail-690339.html

1.01
1.0100000000000000088817841970012523233890533447265625

到了这里,关于python之decimal的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 代币中的decimal精度代表了什么

    精度的意义在于允许发送小数的代币。举例,一个CAT代币合约的精度为6。那么 你拥有1个CAT就意味着合约中的balance = 1 * 10^6 , 转账 0.1CAT出去的话,就需要输入 0.1*10^6 = 10^5。 也就时在涉及代币时,查询到的余额、转账的代币数量 都和 代币合约的精度挂钩 ERC20 合约默认的精度

    2024年02月02日
    浏览(50)
  • JavaScript的数学计算库:decimal.js

    An arbitrary-precision Decimal type for JavaScript. 整数和浮点数 简单但功能齐全的 API 复制 JavaScript 和对象的许多方法 Number.prototype Math 还处理十六进制、二进制和八进制值 比 Java 的 BigDecimal JavaScript 版本更快,更小,也许更容易使用 无依赖关系 广泛的平台兼容性:仅使用 JavaScript 1

    2024年02月09日
    浏览(42)
  • Mysql - 定点型(DECIMAL)的使用详解及练习

    目录 🐶1. 前言: 🐶2. DECIMAL类型简介 🐶3. Decimal使用实战 🥪#结论1:小数位不足会自动补0 🥪#结论2:小数位超出会截断 并按四舍五入处理。  🥪#结论3:小数位不足会自动补0  🥪#结论4:首位数字为0自动忽略  🥪#结论5:超出存储范围会报错 🐶4. 使用小结 🐶5. leetco

    2024年01月23日
    浏览(28)
  • 如何在数据库中存储小数:FLOAT、DECIMAL还是BIGINT?

    这里还是用前面的例子: 在线机票订票系统的数据表设计。此时已经完成了大部分字段的设计,可能如下: 考虑到还需要存储机票的订单金额,此时需要新增 price 字段来存储金额。金额一般都需要考虑小数,如99.99,而在MySQL中存储小数的方法其实有多种,比如: FLOAT/DOUBLE :浮点

    2024年03月13日
    浏览(45)
  • 达梦:dts工具迁移mysql decimal(65,30)的字段,报精度超出定义

      本文旨在分享迁移MySQL decimal字段​​​​​​​时遇到“精度超出定义”问题时,如何理解MySQL和达梦对于decimal 等这一类数值数据类型。 ​​​​​​​​​​​​​​NUMERIC 类型 功能:NUMERIC 数据类型用于存储零、正负定点数。其中: 精度是一个无符号整数,定义了总

    2024年02月03日
    浏览(49)
  • 前端vue项目使用Decimal.js做加减乘除求余运算

    运算结果是Decimal对象,需要使用.toNumber()转为数字

    2024年04月13日
    浏览(60)
  • 2023-06-14 stonedb-包含decimal的存在union的派生表-语法不支持-分析

    stonedb-包含decimal的存在union的派生表-语法不支持-分析 相关ISSUE: https://github.com/stoneatom/stonedb/issues/1873 记录: https://stoneatom.yuque.com/staff-ft8n1u/lsztbl/rxlhws22n0f1otxn/edit#AqyB decimal: int:

    2024年02月09日
    浏览(40)
  • JavaScript:解决计算精度问题/mathjs/bignumber.js/big.js/decimal.js

    一、计算精度现象举例 举例1、加法 举例2、减法    举例3、乘法 举例3、除法 二、JS为什么会有计算精度的问题 JavaScript 内部只有一种数字类型Number,也就是说,JavaScript 语言的底层根本没有整数,所有数字都是以IEEE-754标准格式64位浮点数形式储存,1与1.0是相同的。因为有

    2024年02月10日
    浏览(42)
  • 为什么Flink-CDC读取Decimal等数值类型变成了非数值字符串

    每遇到一个问题,在经过努力研究明白之后,总想写点东西记录。怎奈又没这个好习惯,过了一两天这个激情就没了,想写也写不出来了。最近在做一个flink-cdc采集数据的测试和产品化开发,遇到一个数据转换的问题,折腾了我两个早上,有些心血来潮,就记录一下吧,对我

    2023年04月09日
    浏览(56)
  • 【100天精通python】Day1:python入门_初识python,搭建python环境,运行第一个python小程序

     目录 专栏导读  1 初始python python 概述 python的应用领域   应用python的公司  2 搭建python 开发环境  2.1 安装python(以windows 系统为例)(1)下载安装包  (2) 下载保存后打开文件夹点击以管理员身份运行  (3)选择自定义安装,同时将add python3.9 to path勾上。  (4)测试

    2024年02月15日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包