MS SQL的ROUND函数用来数值的四舍五入

MS SQL要进行数值的四舍五入,有一好用的函数ROUND。

语法 ROUND ( numeric_expression , length [ ,function ] )
参数
numeric_expression 精确数值或近似数值数据类别(bit 数据类型除外)的表达式。
length           numeric_expression 的舍入精度。
                     length 必须是 tinyint、smallint 或 int 类型的表达式。
                     如果 length 为正数,则将 numeric_expression 舍入到 length 指定的小数位数。
                     如果 length 为负数,则将 numeric_expression 小数点左边部分舍入到 length 指定的长度。
function        要执行的操作的类型。function 必须为 tinyint、smallint 或 int。
                    如果省略 function 或其值为 0(默认值),则将舍入 numeric_expression。
                    如果指定了 0 以外的值,则将截断 numeric_expression。

返回类型
返回与 numeric_expression 相同的类型。

备注
      始终返回一个值。
      如果 length 为负数,并且大于小数点前的数字个数,则 ROUND 将返回 0。
      示例 结果
      ROUND(748.58, -4)    0

如果 length 为负数,则无论什么数据类型,ROUND 都将返回一个舍入的 numeric_expression。
     示例 结果
    ROUND(748.58, -1)   750.00  
    ROUND(748.58, -2)   700.00
    ROUND(748.58, -3)   1000.00

以下示例显示了两个表达式,阐释使用了 ROUND 后,最后一位数将始终为估计值
ROUND(123.9994, 3)    123.9990
ROUND(123.9995, 3)    124.0000

以下示例显示舍入和近似值
ROUND(123.4545, 2) 123.4500
ROUND(123.45, -2)    100.00

以下示例使用了两个 SELECT 语句,用于阐释舍入和截断之间的区别。第一个语句舍入结果。第二个语句截断结果。
ROUND(150.75, 0)     151.00
ROUND(150.75, 0, 1) 150.00

以下题为有一station表,求lat_n和long_w的总和,结果精确到二位小数点。
Query the following two values from the STATION table:
The sum of all values in LAT_N rounded to a scale of decimal places.
The sum of all values in LONG_W rounded to a scale of decimal places.

Input Format
The STATION table is described as follows:

Field Type
ID Number
City varchar2(32)
state varchar2(2)
Lat_N number
Long_W number

where LAT_N is the northern latitude and LONG_W is the western longitude.

Output Format
Your results must be in the form:
lat lon
where is the sum of all values in LAT_N and is the sum of all values in LONG_W.
Both results must be rounded to a scale of decimal places.

此题还需要decimal/numeric数据类型,以及convert/cast转换函数的知识

decimal[ (p[ , s] )] 和 numeric[ (p[ , s] )]
固定精度和小数位数。使用最大精度时,有效值从 - 10^38 +1 到 10^38 - 1。decimal 的 ISO 同义词为 dec 和 dec(p, s)。numeric 在功能上等价于 decimal。

p(精度,Precision)
最多可以存储的十进制数字的总位数,包括小数点左边和右边的位数。该精度必须是从 1 到最大精度 38 之间的值。默认精度为 18。

s (小数位数,Scale)
小数点右边可以存储的十进制数字的最大位数。小数位数必须是从 0 到 p 之间的值。仅在指定精度后才可以指定小数位数。默认的小数位数为 0;因此,0 <= s <= p。最大存储大小基于精度而变化。

MS SQL的ROUND函数用来数值的四舍五入的更多相关文章

  1. MS SQL Server 时间函数

    日期和时间数据类型 数据类型 存储(字节) 日期范围 精确度 格式示例 DateTime 8 1753年1月1日 - 9999年12月31日 3 1/3毫秒 yyyy-MM-dd hh:mm:ss.n ...

  2. PCB MS SQL CLR聚合函数(函数作用,调用顺序,调用次数) CLR说明

    用CLR写函数:标量函数,表值函数 很好理解,如果用聚合函数则不是那么好理解了, 这里将CLR函数说明一下,其实关键是对聚合函数说明 用CLR写聚合函数关键点,是要理解CLR与SQL是如何进行数据交互 ...

  3. 查看ms SQL Server存储过程,函数的内容

    方法1:最简单的,右键单击要查看的存储过程,选择“修改”: 方法2: SELECT definition FROM solar.sys.sql_modules WHERE [object_id]=(O ...

  4. SQL ROUND() 函数

    ROUND() 函数 ROUND 函数用于把数值字段舍入为指定的小数位数. SQL ROUND() 语法 SELECT ROUND(column_name,decimals) FROM table_n ...

  5. SQL-W3School-函数:SQL ROUND() 函数

    ylbtech-SQL-W3School-函数:SQL ROUND() 函数 1.返回顶部 1. ROUND() 函数 ROUND 函数用于把数值字段舍入为指定的小数位数. SQL ROUND() 语 ...

  6. sql操作一般函数

    sql操作一般函数 函数一般语法:SELECT function(列) FROM 表 函数的基本类型是: Aggregate 合计函数:函数的操作面向一系列的值,并返回一个单一的值. Scalar 函 ...

  7. 37.ROUND() 函数

    ROUND() 函数 ROUND 函数用于把数值字段舍入为指定的小数位数. SQL ROUND() 语法 SELECT ROUND(column_name,decimals) FROM table_n ...

  8. 松软科技web课堂:SQLServer之ROUND() 函数

    ROUND() 函数 ROUND 函数用于把数值字段舍入为指定的小数位数. SQL ROUND() 语法 SELECT ROUND(column_name,decimals) FROM table_n ...

  9. ROUND() 函数

    ROUND() 函数 ROUND 函数用于把数值字段舍入为指定的小数位数. SQL ROUND() 语法 SELECT ROUND(column_name,decimals) FROM table_n ...

  10. Round函数

    Round():函数返回一个数值,舍入到指定的长度或精度 eg: --1) ) ---->123.9990 ) ---->124.0000 --3为需要舍入的位数 --2) ) ----- ...

随机推荐

  1. SpringBoot获取指定Resource下的文件内容

    加入依赖 <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</a ...

  2. yb课堂之跨域配置 《二十三》

    CorsInterceptor.java package net.ybclass.online_ybclass.interceptor; import org.springframework.http ...

  3. webpack4.15.1 学习笔记(三) — 模块热替换HMR

    目录 模块热替换 HMR HMR监听文件变化 HMR 修改样式表 模块热替换 HMR 允许在运行时更新各种模块,而无需进行完全刷新.不适用于生产环境,意味着应当只在开发环境使用.启用HMR实际上就是更 ...

  4. [oeasy]python0119_语言的演化_拉丁字符_罗马帝国_罗马体

    罗马拉丁字符 回忆上次内容 起源于埃及的 圣书体 象形文字 在与 两河流域的 苏美尔楔形文字 结合后 经过 腓尼基人 的拼音化 和 广泛传播 终于来到了 希腊   ​   添加图片注释,不超过 140 ...

  5. EF6/EFCore Code-First Timestamp SQL Server

    EF 6和EF Core都包含TimeStamp数据注解特性.它只能用在实体的byte数组类型的属性上,并且只能用在一个byte数组类型的属性上.然后在数据库中,创建timestamp数据类型的列,在 ...

  6. DASCTF 2023 & 0X401七月暑期挑战赛【PWN】(FileEditor篇)

    DASCTF 2023 & 0X401七月暑期挑战赛[PWN](FileEditor篇) 题目保护情况(保护全家桶) 64位ida逆向 模拟了一个类似vim的功能,有打开文件,打印内容,插入行 ...

  7. java一些位运算的方法

    记录一些java位运算的方法 Integer.bitCount:用于记录一个int输转化成二进制之后里面包含了多少个1. 使用例题为leetcode2859 切记下面规则要先转二进制 &相同位 ...

  8. Gradle的安装和创建java项目(idea)

    安装 Gradle下载地址:http://services.gradle.org/distributions/ 下载后解压. 解压后的目录结结构如下: 新增环境变量 在path环境变量中添加以下内容: ...

  9. Python 在PDF中添加、替换、或删除图片

    PDF文件中的图片可以丰富文档内容,提升用户的阅读体验.除了在PDF中添加图片外,有时也需要替换或删除其中的图片,以改进视觉效果或更新信息.本文将提供以下三个示例,介绍如何使用Python 操作PDF ...

  10. 《最新出炉》系列初窥篇-Python+Playwright自动化测试-60 - 判断元素是否显示 - 下篇

    1.简介 有些页面元素的生命周期如同流星一闪,昙花一现.我们也不知道这个元素在没在页面中出现过,为了捕获这一美好瞬间,让其成为永恒.我们就来判断元素是否显示出现过. 在操作元素之前,可以先判断元素的状 ...