我进行了一些测试。
truncate(abs('414')/100,2)
truncate('414'/100,2)
truncate('4.14',2)
truncate('4.1400',2)
都有精度丢失。

TRUNCATE(cast(ABS(字符串)/100 as decimal(15,4)) ,2)
上述方法,ABS(字符串)/100得到的应该是double类型,cast是将double类型强制转换为了decimal类型,这个过

程精度是保持不变的吗?
select truncate(cast(abs('414')/100 as decimal(15,4)),2);
测试结果是正确的4.14

TRUNCATE(ABS(cast(字符串)as decimal(15,4))/100 ,2)
select truncate(abs(cast('414' as decimal(15,4)) )/100 ,2);
测试结果也是正确的4.14

select
truncate( -- decimal
cast -- decimal,此处可能会损失精度
(
abs('414') -- double
/100 -- double
as decimal(15,4)
)
,2
);

正确只是巧合。

select
truncate( -- decimal
abs( -- decimal
cast('414' as decimal(15,4)) -- decimal
)/100, -- decimal
2
);

所以用下面的方法才是对的。

mysql 字符串数值计算 精度丢失的更多相关文章

  1. mysql 字符串转数据丢失精度,mysql转换丢失精度,mysql CAST 丢失精度

    mysql 字符串转数据丢失精度,mysql转换丢失精度,mysql CAST 丢失精度 =============================== ©Copyright 蕃薯耀 2017年9月1 ...

  2. java字符串类型数学运算表达式以及精度丢失问题

    字符串类型数学运算精度丢失问题 方式一:ScriptEngine 会精度丢失,可执行连续双括号 方式二:hutool ScriptUtil 会精度丢失,可执行连续双括号 方式三:hutool Scri ...

  3. Java 浮点数精度丢失

    Java 浮点数精度丢失 问题引入 昨天帮室友写一个模拟发红包抢红包的程序时,对金额统一使用的 double 来建模,结果发现在实际运行时程序的结果在数值上总是有细微的误差,程序运行的截图: 输入依次 ...

  4. iOS - Json解析精度丢失处理(NSString, Double, Float)

    开发中处理处理价格金额问题, 后台经常返回float类型, 打印或转成NSString都会有精度丢失问题, 因此使用系统自带的NSDecimalNumber做处理, 能解决这问题:经过测试其实系统NS ...

  5. 关于JavaScript中计算精度丢失的问题

    摘要: 由于计算机是用二进制来存储和处理数字,不能精确表示浮点数,而JavaScript中没有相应的封装类来处理浮点数运算,直接计算会导致运算精度丢失. 为了避免产生精度差异,把需要计算的数字升级(乘 ...

  6. toFixed()精度丢失;复选框全选、取消

    一.精度丢失和重写toFixed()函数 1.重写toFixed() Number.prototype.toFixed = function(length){ var carry = 0; //存放进 ...

  7. FastJSON 后端返回Long型 前段精度丢失的问题

    解决方法就是将Long型转换为字符串---全局配置方案如下: @Override public void configureMessageConverters(List<HttpMessageC ...

  8. java中double和float精度丢失问题及解决方法

    在讨论两位double数0.2和0.3相加时,毫无疑问他们相加的结果是0.5.但是问题总是如此吗? 下面我们让下面两个doubles数相加,然后看看输出结果: @Test public void te ...

  9. [ JAVA编程 ] double类型计算精度丢失问题及解决方法

    前言 如果你在测试金融相关产品,请务必覆盖交易金额为小数的场景.特别是使用Java语言的初级开发. Java基本实例 先来看Java中double类型数值加.减.乘.除计算式实例: public cl ...

随机推荐

  1. java学习笔记整理

    java知识模块:1.基础知识,数组,字符串,正则表达式:2.类和对象,接口,继承,多态,抽象类,内部类,泛型,java常用类库.3.异常处理: 4.IO:   5.事件处理:   6.多线程:  7 ...

  2. 第二章 向量(d1)有序向量:唯一化

  3. centos 6 和centos 7 系统下vnc配置

    一. VNC 服务的大概介绍: VNC (Virtual Network Console)是虚拟网络控制台的缩写.它 是一款优秀的远程控制工具软件,由著名的 AT&T 的欧洲研究实验室开发的. ...

  4. NumPy Ndarray 对象

    NumPy Ndarray 对象 NumPy 最重要的一个特点是其 N 维数组对象 ndarray,它是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引. ndarray 对象是用于存放 ...

  5. 我和struts2 的第一天

    文字解析 1.获取正文请求 2.根据请求做出判断 3.执行具体的方法代码 4.跳转页面,展示给用户 Strut 是Apache发行的MVC框架 他只是表现层的框架 Strut1 是2005年流行的框架 ...

  6. TOJ 3589 likaer的最长点距

    传送门:http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=3589 时间限制(普通/Jav a) ...

  7. Jedis cluster集群初始化源码剖析

    Jedis cluster集群初始化源码剖析 环境 jar版本: spring-data-redis-1.8.4-RELEASE.jar.jedis-2.9.0.jar 测试环境: Redis 3.2 ...

  8. springmvc+logback项目的日志搭建

    一.重写HTMLLayout 两个自定义类:LzhHTMLLayoutBase和LzhHTMLLayout LzhHTMLLayoutBase代码如下: package top.liaozhengha ...

  9. python学习-类属性和实例属性

    #类属性和实例属性 class Tool(object): #类属性 total = 0 #静态方法 @classmethod def say(self): print("hello wor ...

  10. eclipse导入项目以后,内容没有错误,项目上却有个小红叉?

    对于上面的错误,应该如何解决?