当前位置: 首页 > 面试题库 >

Teradata中的DECIMAL类型

怀浩大
2023-03-14
问题内容

有人可以解释一下我在Teradata中得到的以下结果:

SELECT TYPE(CAST (2.3 AS DECIMAL(18,4)) * CAST (2.3 AS DECIMAL(18,4))  )

结果是:

DECIMAL(18,8)

我期待DECIMAL(18,4)


问题答案:

每个DBMS在涉及小数的计算方面都有其自己的规则。

Teradata的基本规则是:当您将DECIMALs相加/相减/相除时,所得的分数精度是两个操作数中较大的一个,例如dec(10,2)+
dec(10,4)= dec(xx,4)

但是,当您乘以小数位时,例如,decdec(10,2)* dec(10,4)= dec(xx,6)

总体精度还有更多规则(某些规则取决于dbscontrol MAxDecimal设置)。

然后有一个最重要的规则,人们往往会忘记:在每次计算之后,结果都会四舍五入到这个精度。

sel 2.0/3.00 * 100, 100*2.0/3.00;

    *** Query completed. One row found. 2 columns returned.
    *** Total elapsed time was 1 second.

 ((2.0/3.00)*100)   ((100*2.0)/3.00)
-----------------  -----------------
            67.00              66.67

迪特尔



 类似资料:
  • 本文向大家介绍MySQL中decimal类型用法的简单介绍,包括了MySQL中decimal类型用法的简单介绍的使用技巧和注意事项,需要的朋友参考一下 MySQL中支持浮点数的类型有FLOAT、DOUBLE和DECIMAL类型,DECIMAL 类型不同于FLOAT和DOUBLE,DECIMAL 实际是以串存放的。DECIMAL 可能的最大取值范围与DOUBLE 一样,但是其有效的取值范围由M 和D

  • 本文向大家介绍python中的decimal类型转换实例详解,包括了python中的decimal类型转换实例详解的使用技巧和注意事项,需要的朋友参考一下 [Python标准库]decimal——定点数和浮点数的数学运算         作用:使用定点数和浮点数的小数运算。         Python 版本:2.4 及以后版本         decimal 模块实现了定点和浮点算术运算符,使用

  • 本节讨论了MySQL 5.1中DECIMAL数据类型(以及其同义类型)的特性,尤其是下述方面: ·数字的最大数。 ·存储格式。 ·存储要求。 ·对DECIMAL列上界 的非标准MySQL扩展。 在本节中,对于为较早MySQL版本编写的应用程序,在相应的地方指出了可能的不兼容性。 DECIMAL列的声明语法是DECIMAL(M,D)。在MySQL 5.1中,参量的取值范围如下: ·M是数字的最大数(

  • 我有一个简单的带有soap WebService的spring-boot应用程序: https://spring.io/guides/gs/production-web-service/ 在xsd中,我添加了自定义的bigdecimal类型(money类型)。 CountryRepository类: 请求: 答复: 如何固定十进制输出?我希望:

  • 使用databricks spark-avro在spark中创建数据帧后,当我试图使用sum函数求和TOT_AMT列时,它会抛出“function sum requires numeric types not binarytype”错误。 该列在avro模式中定义如下, name=“tot_amt”,“type”:[“null”,{“type”:“bytes”,“logicaltype”:“dec

  • 背景 Teradata 在数据管理和数据分析领域有超过 40 年的历史,特别针对金融客户 Teradata 有独到的优势,特别是在金融领域的业务分析,基于利润领域建模等,Teradata 的前身是 CityBank 的高级技术实验室(Advanced Technology Group),Teradata 公司成立于 1979 年,目前公司增长的 3 大支柱:业务分析、(云)产品、咨询服务,2019