zoukankan      html  css  js  c++  java
  • Sql 保留两位小数 四舍五入

    一、问题描述

     数据库里的 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

    convert()函数更多详情,请看菜鸟教程

    http://www.runoob.com/sql/func-convert.html

    特别感谢:

    http://blog.csdn.net/zengcong2013/article/details/46607415

    https://www.cnblogs.com/kissdodog/p/3165944.html

  • 相关阅读:
    动态生成 Excel 文件供浏览器下载的注意事项
    JavaEE 中无用技术之 JNDI
    CSDN 泄露用户密码给我们什么启示
    刚发布新的 web 单点登录系统,欢迎下载试用,欢迎提建议
    jQuery jqgrid 对含特殊字符 json 数据的 Java 处理方法
    一个 SQL 同时验证帐号是否存在、密码是否正确
    PostgreSQL 数据库在 Windows Server 2008 上安装注意事项
    快速点评 Spring Struts Hibernate
    Apache NIO 框架 Mina 使用中出现 too many open files 问题的解决办法
    解决 jQuery 版本升级过程中出现 toLowerCase 错误 更改 doctype
  • 原文地址:https://www.cnblogs.com/jijm123/p/10671397.html
Copyright © 2011-2022 走看看