精华内容
下载资源
问答
  • Oracle中保留位小数

    万次阅读 多人点赞 2017-06-02 08:23:47
    2)在java代码里面将查询出来的数进行格式化处理,保留位小数 先说第一种方案:在SQL中的处理 我使用的oracle数据库,所以有3个函数可以选择,分别是: (1)ROUND(A/B,2) ROUND()函数是会将计算结果进行四...

    在最近的项目开发中,有个业务需求是界面显示的数字需要保留两位小数,目前我想到的解决方法有两种:
    (1)在写SQL的时候,直接保留两位小数
    (2)在java代码里面将查询出来的数进行格式化处理,保留两位小数
    先说第一种方案:在SQL中的处理
    我使用的oracle数据库,所以有3个函数可以选择,分别是:
    (1)ROUND(A/B,2)
    ROUND()函数是会将计算结果进行四舍五入的,如果所需要的值需要进行四舍五入,就可以选择这个函数,可以有一个参数,也可以有两个参数;如果有两个param,第一个是你的计算表达式,第二个是需要保留的小数位数。例子如下:
    这里写图片描述
    (2)TRUNC(A/B,2)
    TRUNC()函数是不会将计算结果进行四舍五入的,如果所需要的值不需要进行四舍五入,就可以选择这个函数,可以有一个参数,也可以有两个参数;如果有两个param,第一个是你的计算表达式,第二个是需要保留的小数位数。例子如下:
    这里写图片描述
    (3)TO_CHAR(A/B,‘FM99990.99’)
    TO_CHAR()是一个格式化函数,第一个参数是计算表达式,第二个参数是指定格式化的格式,如果保留两位小数则小数点后写两个99,这里的数字9代表的数字,也是一个占位符,表示该位置上以后会是一个数字,为什么小数点前面会是一个0,而不是9,是因为如果计算结果小于1,那么只会显示小数点和小数点之后的部分,前面的0会忽略掉
    这里写图片描述
    这里写图片描述


    2019年7月25日更新

    在评论中有人提到一个问题,在SQL计算中,比如1/10的结果是0.1,但是实际需要得到的结果是0.10,那么用我上面的那些方法得到的结果只可以是0.1,不可以是0.10,对于这个问题,我去oracle官网的文档查看了一下,可以采用如下的写法得到:

    select to_char(a/b,'FM9990.00') AS result  from dual;
    

    这里就是需要注意的一点就是0和9的区别,具体我没找到相关的信息,暂时说一下我的想法,0和9应该都是类似于占位符,你实际除得的结果中的数字一般会替换掉9,但是当你整数部分只有一位且是0的时候,那么你需要在格式化的时候用0来指定格式化的模型,如上文那个.67的样子,小数点后面的值,你可以用0也可以用9来指定模式,用9指定的结果就是你的小数点本来后面几位它就显示几位,如果用0来指代,它在位数不够的情况下会用0去进行占位填充。

    格式化官方文档oracle 10g

    oracle format models

    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 数据库里的 float momey 类型,都会精确到多位小数。但有时候 我们不需要那么精确,例如,只精确到两位有效数字。 二、解决: 1. 使用 Round() 函数,如 Round(@num,2) ,其中参数 2 表示 保留两位有效数字。 ...

    一、问题描述

     数据库里的 float momey 类型,都会精确到多位小数。但有时候 我们不需要那么精确,例如,只精确到两位有效数字。

    二、解决:

    1. 使用 Round() 函数,如 Round(@num,2) ,其中参数 2 表示 保留两位有效数字。

    缺点:Round() 只是负责四舍五入到两位小数,但是不负责截断。

    print ROUND(13.145, 2);

    或者select ROUND(13.145, 2);

    结果为:13.150。

    2. 使用 Convert(decimal(18,2),@num) 实现转换,其中参数 2 表示 保留两位有效数字。

    print Convert(decimal(18,2),13.145) 

    结果为:13.15。

    3.使用 cast(@num as decimal(18,2)) 实现转换,其中参数 2 表示 保留两位有效数字。

    print cast(13.145  as  decimal(18,2))

    结果为:13.15。

    4、CAST与CONVERT相同点:

    在大部分情况下,两者执行同样的功能,都可以执行数据类型转换,且都默认实现了四舍五入,

    相当于 print cast(round(13.145)   as   numeric(18,2))  。

    5、CAST与CONVERT不同点:

      CONVERT还提供一些特别的日期格式转换,而CAST没有这个功能。

      既然CONVERT包括了CAST的所有功能,而且CONVERT还能进行日期转换,那么为什么需要使用CAST呢?实际上,这是为了ANSI/ISO兼容。CAST是ANSI兼容的,而CONVERT则不是。

      语法:

      CAST (expression AS data_type [ (length ) ])
    
      CONVERT (data_type [ ( length ) ] , expression [ , style ])

     

      示例:

      SELECT 'AB' + 1    --此语句报错,在将 varchar 值 'AB' 转换成数据类型 int 时失败。
    
      SELECT 'AB' + CAST(1 AS varchar)    --输出 AB1
    
      SELECT 'AB' + CONVERT(varchar,1)    --输出 AB1

      CAST和CONVERT都能转换时间:

      SELECT CONVERT(DateTime,'2011-07-11')    --输出 2011-07-11 00:00:00.000
    
      SELECT CAST('2011-07-11' AS DateTime)    --输出 2011-07-11 00:00:00.000

      但是时间转字符串,CAST没有CONVERT这么多花样:

      SELECT CONVERT(varchar,GETDATE(),5)    --输出 01-07-13
      SELECT CONVERT(varchar,GETDATE(),111)  --输出 2013/07/01
      SELECT CONVERT(varchar,GETDATE(),1)    --输出 07/01/13
    
      SELECT CAST(GETDATE() AS varchar)    --输出 07 1 2013 9:56PM

     

    展开全文
  • MYSQL数据库查询保留位小数

    万次阅读 2014-12-15 13:39:07
    avg(FenShu) as '平均分':结果是75.3333333 cast(avg(FenShu) as decimal(10,2)) as '平均分':结果是75.33

    avg(FenShu)  as '平均分':结果是75.3333333

    cast(avg(FenShu) as decimal(10,2))  as '平均分':结果是75.33

    展开全文
  • select case when nvl(不等于0的字段名, 0) != 0 then round(列名1 / 列名2, 保留位小数) else 0 end 字段的别名 from 表名
    select case
             when nvl(不等于0的字段名, 0) != 0 then
              round(列名1 / 列名2, 保留几位小数)
             else
              0 
           end 字段的别名 from 表名
    
    展开全文
  • 工作中遇到的Oracle数据库...2.百分比保留位小数;(小数点左侧数字数字小于等于100,比如98.76%) 现针对Oracle数据库做以下示例: 在开始之前,先介绍一下Oracle函数大全中的转换函数to_char( ) TO_CHAR(x[[,...
  • Oracle保留2位小数

    2015-07-30 10:27:00
    问题来源:项目中会从数据库取出金额(单位分),第三方需要单位为元的金额,这里就涉及保留2位小数的问题 一、格式化函数to_char 这里我汇总这几个to_char(int, text)、to_char(float, text)、to_char(numeric, ...
  • sql中保留2位小数

    2017-07-19 09:33:00
    数据库里的 float momey 类型,都会精确到多位小数。但有时候 我们不需要那么精确,例如,只精确到两位有效数字。 解决: 1. 使用 Round() 函数,如 Round(@num,2) 参数 2 表示 保留两位有效数字。 2. 更好的方法...
  • MySQL:如何对数据库中数据保留小数

    千次阅读 2019-01-02 16:53:52
    MySQL:数据库中数据如何保留小数 1、round(x,d) :用于数据的四舍五入,round(x) ,其实就是round(x,0),也就是默认d为0; 这里有个值得注意的地方是,d可以是负数,这时是指定小数点左边的d整数为0,同时小数位均为...
  • 为此我使用cast(数据 as DECIMAL(一共几数(小数点后面的数不包含),保留就位小数) )来解决 但是在传到前端的时候,明明是有小数点的,但是页面上显示的确实没有小数点的,解决方法:1:把传的数据变成String类型...
  • 1.数据库字段类型 ...2.后台查出的json却没有两位小数 [{ recordId : 20170320142740038015948, appSysId : 23551, appDeptId : 3, orgDeptName : null, carHostNO : 1019, secureNo : 111, sec
  • layui table 对于后台json数据,有数字的,默认不会原样显示,而是只取数值,即100.00显示为...项目采用mysql数据库,字段类型为decimal(10,2)时,即自动保留位小数,不足补0,只需用cast函数转换即可:cast(num as char)...
  • 将EXCEL导入MDB数据库,金额如何只保留2位小数?EXCEL里有的金额为235.4599或3902.497这样的,我想导入数据库后只保留小数后两位就可以,下面是我导入数据库的代码: procedure Tfrm_dfcz.BitBtn1Click(Sender: T...
  • SQL 保留2位小数的方法/四舍五入

    千次阅读 2019-05-22 09:36:19
    数据库中存在着粘性一列,其数据...decimal(4,2)代表有4位有效数字,保留2位小数(少于2位补0,多于2位四舍五入),最多有4-2=2位整数数字. 如果转换时出现了 将 float 转换为数据类型 numeric 时出现算术溢出错误 (float ...
  • C#保留2位小数几种场景总结 场景1:  C#保留2位小数,.ToString("f2")确实可以,但是如果这个数字本来就小数点后面三位比如1.253,那么转化之后就会变成1.25.可不可以刚好保留到最后一位不是0的位置?默认...
  • PHP保留位小数

    2018-01-09 16:22:00
    我们在项目里经常需要保留小数位数,比如显示金额的时候通常需要保留位小数位数,除了可以在设计数据库的时候将金额字段设置为decimal(n,2)形式的,通过PHP也可以处理小数数位,PHP中可以处理数字的函数很多,就...
  • ![图片说明](https://img-ask.csdn.net/upload/202004/22/1587523297_258443.png) 在存储 如 2.0 或者5.0 这类的数据 到表中就会变成2 , 5 后面的 .0会消失了 ,这是为什么。有什么办法解决吗
  • SQL 保留位小数的实现方式 问题:  客户要求,跟金额相关的数据,打印出来要保留位小数,比如:13.2/...首先查看数据库中的数据定义,均为decimal(12,2) ,直接通过数据库查询的结果也会保留两位小...
  • 保留位小数 java

    2018-05-15 15:13:21
    在程序运算过程中,一般需要格式化属性值,要把一个字符串类型的值保留成两位小数存到数据库中。经常忘记,写下来记录下。假设str1,str2,result 都是数据库中的字段,且类型为varchar,在计算工程中需要转成如下格式...
  • freemarker保留位小数

    千次阅读 2013-11-06 14:56:18
    freemarker保留位小数 方法一 #{number ;m1M2} m 最少几位小数,M最多几位小数 方法二 ${x?string("0.##")}  在开发中很容易忽视一点,输入一个值(可能是小数),输出时如果不做处理,就...
  • 保留位小数

    2012-08-07 16:08:35
    在实际项目过程中,各个层中都会有保留两个小数点儿的问题,我总结一下,以... ROUND(value,想要保留小数位) , 例如 round(3,2) 结果为3.00    2、Java层    3、Web层    (1) JavaScript: var a=(1...
  • EasyUI Numberbox 保留位小数

    万次阅读 2017-09-08 22:10:34
    总结解决数据库处理项目的前台用的是 EasyUI,在 Numberbox 中要求保留位小数,我想到的法子是,我从数据库中 format(x, 2) 一下,就可以解决了,嗯,完美!不过前台 Numberbox 并不认识逗号(,), 如果出现逗号,他...
  • select b.unitCode,b.unit,AVG(b.age*1.0) avgAge from (select ((2015-SUBSTRING(birthday,0,5))*12+(3-SUBSTRING(birthday,5,2)))/12 as age ,a.* from TRT_CADRES a) b where unit is not null gr...

空空如也

空空如也

1 2 3 4 5 ... 12
收藏数 232
精华内容 92
关键字:

数据库保留2位小数