mysql之处理金钱小数点后的多余0

问题产生原因:我们在做基金项目   产生大量的金钱  在GP首页展示首页信息的时候要求去除多余的0   由于我们在数据库设计的时候查询返回数据 例如18.100000 这种形式  而我们需要将多余的0去除掉  展现形式18.1这种形式展示

解决方案:

刚开始的时候我看见采用cast()函数  和 convert() 函数进行转换  真正的实现方式也是采用这两种函数

错误使用方式:

采用select cast(90.090008700 as decimal(9,3))  这种方式也可以去除小数点后面的0  执行结果为90.09  后面的0.000008700被去除了  而且这中使用方式还会四舍五入

而且在我们查询回来的数据我们如果不进行强制位数限定的话  我们无法知道准确的来指定decimal(参数1,参数2) 参数二小数的位数  所以这种方式不足以解决这个问题。

正确的解决方式:

select 0+cast(90.09008700 as char )      输出结果 90.090087

或者

select 0+CONVERT(‘90.09008700‘ , CHAR)  输出结果:90.090087

通过以上两种方式可以获取到我想要的数据   同时当我们在使用查询时候有时候为了避免返回数据为null  我们可以用ifnull(参数1,参数2)  参数1值  参数2当参数是空的时候可以指定我们想返回的值是什么比我我们常用   ifnull(count,0) 这种使用方式  如果count是空  返回0

原文地址:https://www.cnblogs.com/lwdmaib/p/9539240.html

时间: 2024-11-07 15:10:49

mysql之处理金钱小数点后的多余0的相关文章

c#去掉小数点后的无效0

decimal d = 0.0500m; d.ToString("0.##")就出来了 也可以这样 string.Format("{0:0.##}",d000) .##表示最多保留2位有效数字,但是不包括0,就是说 如果上面d=0.5000,出来后也只是0.5,方便多了^_^

小数点后保留2位小数的正则表达式

一.前提 整数和小数,保留两位小数的正则表达式: 具体什么意思呢 ^(([1-9]{1}\\d*)|([0]{1}))(\\.(\\d){0,2})?$ 二.知识点 1.首先从写法上可以看出,使用了显式定义正则表达式的语法,因为其中存在对字符串"\"(反斜杠)的转义    2.正则表达式的定义共有2种方式:显示定义和隐式定义 1 /*\d是正则表达式中的元字符,用于匹配数字,相当于[0-9],所以[0-9]也可以写成\d*/ 2 var myregex = new RegExp(&qu

去掉BigDecimal类型变量小数点后多余的零

       业务背景:mysql中A表中的B字段的类型是decimal类型,小数位数是三位,某一条数据的值是3000000,在Java中查询出来的结果是3000000.000,这样显示在页面中不太好看,用户希望看到是3000000.       解决办法:使用 stripTrailingZeros().toPlainString()来解决.下面举例说明如何去掉BigDecimal类型变量小数点后多余的零: BigDecimal testData = new BigDecimal("300000

水晶报表动态显示小数点后的位数(去掉多余的0)

今天一来上班,有一个同事就问我如何控制显示数字小数点后面的位数, 如果有三位就显示三位,如果第三位数是0就显示2位小数,以此类推,小数点后如果都是0,就只显示整数. 默认的水晶报表数字字段会带有2或3位小数位,而当字段小数部分为零时,小数位将变成2或3个”0”(如123.000),很多时候我们不想要这几个多余的0,需要字段在有小数时显示小数位,没有小数时自动去掉多余的0.现以直接原料字段为例. 现在我想把直接原料字段动态显示小数位数即红色框框里的多余的0去掉. 此时选中"直接原料字段"

mysql格式化小数保留小数点后两位(小数点格式化)

格式化浮点数的问题,用format(col,2)保留两位小数点,出现一个问题,例如下面的语句,后面我们给出解决方法 SELECT FORMAT(12562.6655,2); 结果:12,562.67 查看文档:Formats the number X to a format like '#,###,###.##', rounded to D decimal places, and returns the result as a string. If D is 0, the result has

Java中double类型的数据精确到小数点后两位

Java中double类型的数据精确到小数点后两位 多余位四舍五入,四种方法 一: double f = 111231.5585;BigDecimal b = new BigDecimal(f); double f1 = b.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue(); 二: new java.text.DecimalFormat("#.00").format(3.1415926) 三: double d = 3.1415926

js取float型小数点后两位数的方法

四舍五入以下处理结果会四舍五入:' var num =2.446242342; num = num.toFixed(2); // 输出结果为 2.45 不四舍五入以下处理结果不会四舍五入:第一种,先把小数边整数: Math.floor(15.7784514000 * 100) / 100  // 输出结果为 15.77 第二种,当作字符串,使用正则匹配: Number(15.7784514000.toString().match(/^\d+(?:\.\d{0,2})?/))  // 输出结果为

js如何实现数字保留小数点后两位小数

js如何实现数字保留小数点后两位小数:小数点后保留两位小数是比较常见的形式,由于比较简单,下面直接给出例子.代码如下: var num=3.1415926; console.log(num.toFixed(2)); toFixed()函数可以参阅javascript的Number对象的toFixed()方法一章节. 原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=9567 更多内容可以参阅:http://www.softwhy.

对数值数据的格式化处理(保留小数点后N位)

项目中有时会遇到对数值部分进行保留操作,列如保留小数点后2位,所有的数据都按这种格式处理, //保留小数点后2位,都按这种格式处理,没有补0 DecimalFormat df = new DecimalFormat("0.00"); //没有小数,或者小数部分不足是用0来补 BigDecimal db1 = new BigDecimal(111); System.out.println(df.format(db1)); //下面比较奇怪,不论是字符串表示,还是数字表示,只要没有大于11