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

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

时间: 2024-10-10 23:12:34

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

IE JavaScript字符串转换成Date后出现NaN错误

参考的博文:http://blog.csdn.net/zhu7478848/article/details/53388582 在IE浏览器下, JavaScript字符串转换成Date后会出现NaN错误,但是在其他的浏览器下,都没有问题. 因此,转变字符串的格式. var  date  = new Date("2016-10-11") 在IE下date是NaN,而其他浏览器正常. 字符串修改成 2016/10/11 var  date  = new Date("2016-10

求解:为什么父类没有的属性,在强制转换成子类后却有值了

foreach (M912 m912 in m912List) { var m934 = (M934)m912; //强制转换后,父类M912 中没有的属性m918List在转换后的子类m934中能访问且有值 } 说明:其中M912 是父类M934 是子类 m918List是子类M934的一个属性 疑问,为什么父类没有的属性,在强制转换成子类后却有值了,这种情况是如何实现的? ************************************ 问题:将子类实例赋值给父类的实例后,子类对象所

Javascript-自定义对象转换成JSon后如何再转换回自定义对象

man是自定义的对象,使用var tim = JSON.stringify(man); var newman=JSON.parse(tim)后newman的类型是"object"并不是一个Man,怎么才能变回一个Man呢? function Man() { this._type = "man"; this.name=""; this.run = function () { alert("run!!"); alert(this.

Java 把 InputStream 转换成 String 的几种方法

我们在 Java 中经常会碰到如何把 InputStream 转换成 String 的情形,比如从文件或网络得到一个 InputStream,需要转换成字符串输出或赋给别的变量. 未真正关注这个问题之前我常用的办法就是按字节一次次读到缓冲区,或是建立 BufferedReader 逐行读取.其实大可不必费此周折,我们可以用 Apache commons IOUtils,或者是 JDK 1.5 后的 Scanner,还可用 Google  Guava 库的 CharStreams.到了 JDK7,

Java 里把 InputStream 转换成 String 的几种方法

我们在 Java 中经常会碰到如何把 InputStream 转换成 String 的情形,比如从文件或网络得到一个 InputStream,需要转换成字符串输出或赋给别的变量. 未真正关注这个问题之前我常用的办法就是按字节一次次读到缓冲区,或是建立 BufferedReader 逐行读取.其实大可不必费此周折,我们可以用 Apache commons IOUtils,或者是 JDK 1.5 后的 Scanner,还可用 Google  Guava 库的 CharStreams.到了 JDK7,

加法将 number 类型 转换成 string 类型

python也不是没有缺点在性能方面就Java.C++等老前辈还是没得比的,另外python和nodejs一样只能使用CPU单核,也是性能方面影响是因素之一. 发现只有A线程打印了"A",并没有发现B线程和C线程打印字符串:(.难道是A线程更改了Integer对象的值,而B线程和C线程并没有"看到"更新后的值?于是,在线程类的run方法的while循环中增加代码如下 在ABP里,一个应用服务应当实现IApplicationService接口,为每个应用服务创建一个接

把Message转换成String

把Message转换成String注意,这里欠缺CM消息和CN消息,因为它们不是系统消息,不经过Dispatch API转发,但是可以把它们写在WndProc里,这样SendMessage送来的消息也可截获,或者Dispatch里,这样动态消息也可统统截获.另外就是要把VCL标准控件里,凡是改写了WndProc的子类也要截取,因为Windows会把消息发给它们,却不一定会调用TWinControl.WndProc函数(但大多数还是调用了,没准是全部).唯一不能截获的是子类出现了新消息,并且改写了

Java 把long 转换成 日期 再转换成String类型

1 /** 2 * 把long 转换成 日期 再转换成String类型 3 */ 4 public String transferLongToDate(String dateFormat, Long millSec) { 5 SimpleDateFormat sdf = new SimpleDateFormat(dateFormat); 6 Date date = new Date(millSec); 7 return sdf.format(date); 8 } 上面是方法   第一个参数:da

double型转换成string型

double型转换成string型 题目描述: 如有一个函数,其可接受一个long double参数,并将参数转换为字符串,结果字符串应保留两位小数,例如,浮点值123.45678应该生成"123.45"这样的字符串.表面上看来 这是一个意义不大的编程问题,然而,如果真要在实际中派上用场,函数应设计为具有一定弹性,以允许调用者指定小数位数.另外,函数也应该能够处理各种异常 情况,如像123.0或123这样的整数. 转换函数接口:string do_fraction(long doubl