`
ideage
  • 浏览: 326090 次
社区版块
存档分类
最新评论

让你抓狂的Decimal

 
阅读更多

使用Decimal模块的时候,有些问题会让你抓狂。

 

from decimal import *

dec =  Decimal('0.00000000000000') * Decimal('-0.002000000')
print dec
dec =  Decimal('0.00000000000000') / Decimal('-0.0020000000002')
print dec

结果竟然是

-0E-23
-0.0

 

很显然,我不期待这个结果。只能修改decimal模块了。

 

 

 

在精度不足的情况下,会使用科学记数法:

getcontext().prec = 2
a = Decimal('493.00')
b = Decimal('201.00')
print a - b

 

结果是2.9E+2,也就是290

 

还是默认精度吧。

 

 

 

也可以在进行乘法或者除法时候,转换为float计算,结果再转换为Decimal,不过,写的代码会很变态。

 

 

 

分享到:
评论

相关推荐

    python中的decimal类型转换实例详解

    ### Python中的Decimal类型转换详解 #### 一、引言 在Python编程中,处理精确的数值计算时,传统的浮点数运算...掌握`decimal`模块的使用技巧将帮助你避免因浮点数运算带来的精度问题,提高程序的可靠性和准确性。

    decimaljsJavaScript的任意精度Decimal类型

    在开发过程中,如果你需要处理需要高精度的数学计算,例如涉及货币计算、金融分析、统计计算或者其他需要精确结果的场景,Decimal.js是一个非常优秀的工具。通过引入和使用这个库,你可以确保所有的计算结果都是准确...

    前端项目-decimal.js.zip

    2. **创建与初始化**:你可以通过字符串、数字、数组或其他Decimal对象来创建一个新的Decimal实例。例如,`new Decimal('3.14')` 创建了一个表示π的Decimal对象。 3. **算术运算**:Decimal.js支持所有基本的数学...

    decimal date转换_date转decimal_decimal转date_decimal转date_timeconver

    理解以上概念后,你可以在实际项目中灵活运用这些方法,无论是处理Excel电子表格中的日期数据,还是在编程环境中进行复杂的时间转换。在处理`J_Ryo_CO.csv`和`年转换.txt`时,应首先了解其内容和格式,然后根据需求...

    Decimal测试案例文档1

    "Decimal测试案例文档1" decimal类型是数据库中一种常用的数据类型,对于 decimal 类型的属性,在插入数据时可能会出现一些错误,以下是对decimal测试案例文档1中出现的七个问题的知识点总结: 1. decimal类型属性...

    decimal数据类型的小结

    在数据库设计与编程领域,`decimal`数据类型是一种极为重要的数值型数据结构,主要用于存储具有固定小数位数的十进制数值。这种数据类型的精确性对于财务计算、科学计算等场景至关重要,因为它能避免浮点数计算时...

    Decimal性能测试报告1

    《Decimal性能测试报告1》 本文主要探讨了新版本decimal数据类型在性能、稳定性和内存管理方面的表现,对比了其与旧版decimal以及double数据类型的相关特性。通过对一系列实验的详细分析,我们可以深入理解decimal...

    DECIMAL 功能开发文档1

    《DECIMAL功能开发文档》详细解析 在数据库系统中,数据类型是至关重要的组成部分,它们决定了数据的存储方式和处理规则。本文档主要探讨的是在Cedar数据库中添加对DECIMAL数据类型的支撑,以满足对高精度数值计算...

    转换科学计数法的数值字符串为decimal类型的方法

    在操作数据库时,需要将字符串转换成decimal类型。 代码如下: select cast('0.12' as decimal(18,2)); select convert(decimal(18,2), '0.12'); 当需要将科学计数法的数字字符串转换成decimal时,这2种写法都...

    Decimal功能测试报告1

    "Decimal功能测试报告1" 本测试报告主要是对Decimal数据类型的功能测试,旨在验证Decimal类型的基本功能是否能够正确地工作。以下是测试的详细说明: 测试概述 Decimal作为一种数据类型,可以在定义时指定整数部份...

    Decimal BASIC

    Decimal BASIC for Windows 是一个专为Windows操作系统设计的编程语言,基于经典的BASIC(初学者通用符号指令代码)语法,但特别强调十进制数学运算的精确性。在传统的BASIC中,浮点数运算可能会导致精度损失,而...

    decimal basic

    "decimal basic"是一种编程语言,它使用了十进制数据类型来提供高精度的计算能力。这个标题暗示了我们将在讨论一个专注于处理十进制数的编程基础,这对于需要进行金融计算或者需要精确数值处理的场景尤其重要。在...

    Go-decimal-任意精度的定点小数

    2. **创建decimal对象**:通过`decimal.NewFromFloat`或者`decimal.New`方法创建decimal对象。 3. **执行运算**:使用`Add`, `Sub`, `Mul`, `Div`等方法进行算术运算。 4. **处理错误**:捕获可能的`decimal....

    Laravel开发-decimal-mutators

    `decimal mutators`是Laravel提供的一种机制,它允许我们方便地为数据库中的decimal类型的字段添加访问器(accessor)和赋值器(mutator)。在Laravel中,访问器和赋值器是模型类中定义的方法,用于在数据存储和读取...

    Go-Decimal一个高性能任意精度的固定点十进制库

    在 `ericlagergren-decimal-73749d4` 这个压缩包中,包含了 `Go-Decimal` 的源代码,你可以深入研究其内部实现,理解如何使用位运算和内存管理来优化高性能的十进制运算。通过学习这个库,不仅可以提升对 Go 语言的...

    11.ESQL/C程序中使用DECIMAL数据类型[参照].pdf

    本章重点讲述了在ESQL/C程序中如何处理和使用DECIMAL数据类型,这是一种用于存储精确数值的类型,适用于需要进行高精度计算的场景。 DECIMAL数据类型在ESQL/C中具有广泛的用途,它允许存储带有小数点的数值,且精度...

    js-big-decimal.min.js

    js-big-decimal.min.js, 用于处理Js大整数等

    SQL中NUMERIC和DECIMAL的区别

    ### SQL中NUMERIC和DECIMAL的区别 在数据库设计与开发过程中,选择合适的数据类型是非常重要的一步,这直接关系到数据的存储效率与查询性能。在SQL语言中,`NUMERIC`和`DECIMAL`是最常用的数据类型之一,尤其是在...

    MySQL中Decimal类型和Float Double的区别(详解)

    float,double类型是可以存浮点数(即小数类型),但是float有个坏处,当你给定的数据是整数的时候,那么它就以整数给你处理。这样我们在存取货币值的时候自然遇到问题,我的default值为:0.00而实际存储是0,同样我...

Global site tag (gtag.js) - Google Analytics