精华内容
下载资源
问答
  • select cast((cast(4000 as decimal(10,2))*6/5000) as decimal(10,2))*100 里面的一层cast是用来保证数据相除之后保留小数的部分,外面的一层cast是保证最后结果是两位小数
     select cast((cast(4000 as decimal(10,2))*6/5000) as decimal(10,2))*100

    里面的一层cast是用来保证数据相除之后保留小数的部分,外面的一层cast是保证最后结果是两位小数
    展开全文
  • 数据库保存两位小数类型--Decimal

    万次阅读 2018-04-10 11:23:02
    昨天有个小需求,要在数据库里保存种占比的数据,说到占比,我第一反应就是要保存成小数,因为编程经验太少了,不知道要定义成什么类型,搜了一下得知,可以设置成DECIMAL,但我在alter表的时候,写的是DECIMAL...

            昨天有个小需求,要在数据库里保存两种占比的数据,说到占比,我第一反应就是要保存成小数,因为编程经验太少了,不知道要定义成什么类型,搜了一下得知,可以设置成DECIMAL,但我在alter表的时候,写的是DECIMAL类型,但保存之后变成了NUMBER类型,这样我算出来的小数结果就都变成了四舍五入的整数...先说一下,我用的是Oracle数据库。NUMBER的话要设置成 NUMBER(p,s)

    声明一个定点数 p(precision)为精度,s(scale)表示小数点右边的数字个数,精度最大值为38,,scale的取值范围为-84到127

            我用的Navicat工具,直接在类型上面写NUMBER(8,4)并不成功,原来是后面的那两栏,比例就代表的是小数位数,如图:

            不过我还是想搞明白为什么明明设置的是DECIMAL类型而保存之后却变成了NUMBER

            然后在某网站看到一篇超详解,简直太赞了!简单整理一下分享给大家:

          Oracle只是在语法上支持decimal类型,但是在底层实际上它就是number类型,支持decimal类型是为了能把数据从Oracle数据库移到其他数据库中。Decimal从根本上说应该是数字类型的,因为Oracle数据库内部的数据类型对于数字只有Number类型,都当数字类型处理即可。decimal(8,2)代表数字总共8位长度,小数部分是2位。范围是8位,精确到小数点后2位,并四舍五入,即存6位整数,两位小数。也就是最大值可以是999999.99,可存放2位小数。Oracle中,可以使用to_char函数对数字进行转换,使它变成字符类型.

     

        Number的话,上面有说了,NUMBER(p,s)  p表示精度,s表示小数点后面的位数,但要注意:

    当一个数的整数部分的长度> p-s 时,Oracle就会报错,

    当一个数的小数部分的长度> s 时,Oracle就会舍入。

    当s(scale)为负数时,Oracle就对小数点左边的s个数字进行舍入。

    当s > p时, p表示小数点后第s位向左最多可以有多少位数字,如果大于p则Oracle报错,小数点后s位向右的数字被舍入.

    展开全文
  • 本人菜鸟,今天遇到一个问题,把数据库中的一列值保留两位小数查出来; 在网上搜索了很多关于数据库中保留两位小数的文章,可惜总是不能实现,后来自己总结了下, 才发现原来很简单,是自己没有理解够; 在这...

    引入:

             本人菜鸟,今天遇到一个问题,把数据库中的一列值保留两位小数查出来;

        在网上搜索了很多关于数据库中保留两位小数的文章,可惜总是不能实现,后来自己总结了下,

        才发现原来很简单,是自己没有理解够;

        在这之前先介绍下几个函数:

    1:round()这是四舍五入函数,用于把数值字段舍入为指定的小数位数。

        例如:   SELECT round(column_name,decimals) FROM table_name;

       网上说这个函数可以保留 四舍五入两位小数,可是我发现SELECT ROUND(19.434,2)出来的是19.430而不是19.43,

       可能是由于不能数据库的关系,竟然讲到这个函数,我就对这个函数解释下总结了下网上一些博客对它的了解

       round 有两个重载,一个是两个参数,一个是三个参数:

       1.带有两个参数.每二个参数是小数点的左边第几位或右边第几位,分别用正负表示.左边为负,右边为负.为四舍五入.

        SELECT round(567.45676,-1)  570.00000(-1 表示四舍五入到右边第1位,其中,个位为第0位,四舍五入后舍弃的部分显示为0)

        SELECT round(567.45676,2)  567.46000

        SELECT round(20,-3)           0

       2.带三个参数.第二个参数同上.第三个参数有两种可能,一种是取0为四舍五入.另一种是正负值,则为舍去

        SELECT  round(567.45676,2,0)  567.46000(跟两个参数意义的结果,可以把两个参数的当为三位参数的特例为第三参数0)

        SELECT  round(567.45676,2,3)   567.45000(第三个参数不为0,所以为舍去,舍弃两位以后的数字,变为567.45舍弃部位为0所以是567.45000)

        SELECT  round(567.45676,2,3)   567.45000

     2: cast(value as type)函数,其实要保留两位小数,只需要把用SELECT CAST(19.4667 AS decimal(9,2))就可以这样出来是19.47要是不想四舍五入的话,

        可以 先用round函数处理下SELECT cast(round(19.4667,2,3) as decimal(9,2)) 19.46当round函数第三个参数不为0就可以;

     3:convert(type,value)函数拥有和cast一样的功能SELECT convert( decimal(9,2),round(19.4667,2,3) ) 19.46

    转载于:https://www.cnblogs.com/gf345725726/archive/2012/07/13/2590923.html

    展开全文
  • Oracle中保留两位小数

    万次阅读 多人点赞 2017-06-02 08:23:47
    在最近的项目开发中,有个业务需求是界面显示的数字需要保留两位小数,目前我想到的解决方法有两种: (1)在写SQL的时候,直接保留两位小数 (2)在java代码里面将查询出来的数进行格式化处理,保留两位小数 先...

    在最近的项目开发中,有个业务需求是界面显示的数字需要保留两位小数,目前我想到的解决方法有两种:
    (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

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

    展开全文
  • import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet;...import java.sql.SQLException;... /* 获取数据库连接的函数*/ ...可以保留两位小数
  • 一、问题描述 数据库里的 float momey 类型,...缺点:Round() 只是负责四舍五入到两位小数,但是不负责截断。 printROUND(13.145,2); 或者selectROUND(13.145,2); 结果为:13.150。 2. 使用 Convert(decimal(...
  • 问题场景:在mysql数据库中,存在乘除运算或浮点数数据,取出时需要过滤小数点后的数据,保留两位小数,同时四舍五入。 convert(expr,type)函数 expr:代表传入的数据,如字符串,数字。 type:代表转换后的类型 ...
  • MYSQL数据库查询保留两位小数

    万次阅读 2014-12-15 13:39:07
    avg(FenShu) as '平均分':结果是75.3333333 cast(avg(FenShu) as decimal(10,2)) as '平均分':结果是75.33
  • 保留两位小数主要分为两种情况:  1.数字保留两位小数;(小数点左侧数字可能比较大,比如1234567890.12)  2.百分比保留两位小数;(小数点左侧数字数字小于等于100,比如98.76%) 现针对Oracle数据库做以下示例...
  • select case when nvl(不等于0的字段名, 0) != 0 then round(列名1 / 列名2, 保留几位小数) else 0 end 字段的别名 from 表名
  • 查出的数据小数点后带两位小数 2.后台查出的json却没有两位小数 [{ recordId : 20170320142740038015948, appSysId : 23551, appDeptId : 3, orgDeptName : null, carHostNO : 1019, secureNo : 111,...
  • layui table 对于后台json数据,有数字的,默认不会原样显示,而是只取数值,即100.00显示为...项目采用mysql数据库,字段类型为decimal(10,2)时,即自动保留两位小数,不足补0,只需用cast函数转换即可:cast(num as char)...
  • 客户的一个需求,mybatis查询...float保留两位精度可以采用DecimalFormat  直接贴上最终的解决代码(事情没有想象的简单) public class TwoDecimalFloatTypeHander implements TypeHandler<String> { ...
  • money类型的数据存在数据库中...怎样才能让它显示两位小数呢,下面有两种方法: CS文件中: Label_Sell_Price.Text=string.Format("{0:0.00}",ds.Tables[0].Rows[0][ "money "]); aspx文件中:...
  • PHP保留两位小数

    2020-12-17 16:36:07
    我们在php开发的时候经常需要保留小数位数,比如显示金额的时候通常需要保留两位小数位数,除了可以在设计数据库的时候将金额字段设置为decimal(n,2)形式的,通过PHP也可以处理小数数位,PHP中可以处理数字的函数很...
  • 保留两位小数 java

    2018-05-15 15:13:21
    在程序运算过程中,一般需要格式化属性值,要把一个字符串类型的值保留成两位小数存到数据库中。经常忘记,写下来记录下。假设str1,str2,result 都是数据库中的字段,且类型为varchar,在计算工程中需要转成如下格式...
  • SQL 保留两位小数的实现方式 问题:  客户要求,跟金额相关的数据,打印出来要保留两位小数,比如:13.2/13.200要显示为13.20; 分析: 首先查看数据库中的数据定义,均为decimal(12,2) ,直接通过...
  • freemarker保留两位小数

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

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 405
精华内容 162
关键字:

数据库两位小数