开发者社区 > 大数据与机器学习 > 大数据计算 MaxCompute > 正文

大数据计算MaxComputeDouble 类型的做个计算精度也会有问题,不使用CAST的话?

大数据计算MaxComputeDouble 类型的做个计算精度也会有问题,不使用CAST的话?
65d302cb31049815da79adc643c41fdf.png
660085dc837a1dfad807ee96da300171.png
088878614824b25f10f4ec261d349d56.png
dbb1679eafc800f296aa0827abc0de4c.png

展开
收起
真的很搞笑 2023-12-10 15:13:48 88 0
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    确实,使用MaxCompute的DOUBLE类型进行计算时,由于其8字节双精度浮点数的特性,存在一定的精度损失。例如,4.515的DOUBLE类型在表示结果时为4.514999999,因此在做四舍五入操作时会被计算为4.51。因此,如果您对计算精度有较高要求,建议将DOUBLE数据类型转换为DECIMAL类型进行计算。

    值得注意的是,当MaxCompute项目打开2.0新数据类型开关时,部分隐式类型转换会被禁用,包括STRING转换为BIGINT、STRING转换为DATETIME、DOUBLE转换为BIGINT、DECIMAL转换为DOUBLE、DECIMAL转换为BIGINT等,这些操作都有可能导致精度损失或报错。所以对于涉及精度计算的任务,应尽可能避免这些可能出现问题的转换操作。

    2023-12-11 14:16:43
    赞同 展开评论 打赏
  • double类型会有精度问题存在,可以cast转成decimal来使用。可以参考下这篇文档
    https://help.aliyun.com/zh/maxcompute/use-cases/fix-the-precision-issue-of-the-round-function?spm=a2c4g.11186623.0.i27 ,此回答整理自钉群“MaxCompute开发者社区2群”

    2023-12-11 12:25:57
    赞同 展开评论 打赏

MaxCompute(原ODPS)是一项面向分析的大数据计算服务,它以Serverless架构提供快速、全托管的在线数据仓库服务,消除传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,使您经济并高效的分析处理海量数据。

相关产品

  • 云原生大数据计算服务 MaxCompute
  • 相关电子书

    更多
    Data+AI时代大数据平台应该如何建设 立即下载
    大数据AI一体化的解读 立即下载
    极氪大数据 Serverless 应用实践 立即下载