博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
impala 四舍五入后转换成string后又变成一个double的数值解决(除不尽的情况)
阅读量:5263 次
发布时间:2019-06-14

本文共 989 字,大约阅读时间需要 3 分钟。

impala 四舍五入后转换成string后又变成一个double的数值解决(除不尽的情况)

例如
Query: select cast(round(2 / 3, 4)*100 as string)
+---------------------------------------+
| cast(round(2 / 3, 4) * 100 as string) |
+---------------------------------------+
| 66.670000000000002 |
+---------------------------------------+
改成
Query: select concat(cast(cast(round(2 / 3, 4) * 100 as decimal(9,2)) as string) ,'%')
+--------------------------------------------------------------------------+
| concat(cast(cast(round(2 / 3, 4) * 100 as decimal(9,2)) as string), '%') |
+--------------------------------------------------------------------------+
| 66.67% |
+--------------------------------------------------------------------------+

decimal(9,2) : 9表示位数,2表示小数精度。decimal最大精度是38

有效位:±1.0 × 10(-28次方) 到 ±7.9 × 10(28次方)
精度:28 到 29 位

2. decimal ,float,double 差别

mysql中存在float,double等非标准数据类型,也有decimal这种标准数据类型。
其区别在于,float,double等非标准类型,在DB中保存的是近似值,而Decimal则以字符串的形式保存数值。
数据定义

转载于:https://www.cnblogs.com/gavinYang/p/11196412.html

你可能感兴趣的文章
mysql-5.7 innodb 的并行任务调度详解
查看>>
shell脚本
查看>>
Upload Image to .NET Core 2.1 API
查看>>
Js时间处理
查看>>
Java项目xml相关配置
查看>>
三维变换概述
查看>>
vue route 跳转
查看>>
【雷电】源代码分析(二)-- 进入游戏攻击
查看>>
Entityframework:“System.Data.Entity.Internal.AppConfig”的类型初始值设定项引发异常。...
查看>>
Linux中防火墙centos
查看>>
mysql新建用户,用户授权,删除用户,修改密码
查看>>
FancyCoverFlow
查看>>
JS博客
查看>>
如何设置映射网络驱动器的具体步骤和方法
查看>>
ASP.NET WebApi 基于OAuth2.0实现Token签名认证
查看>>
283. Move Zeroes把零放在最后面
查看>>
Visual Studio Code 打开.py代码报Linter pylint is not installed解决办法
查看>>
Python 数据类型
查看>>
S5PV210根文件系统的制作(一)
查看>>
centos下同时启动多个tomcat
查看>>