`
hunter090730
  • 浏览: 195332 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Oracle about ROUNDING/ROUND_DOWN/ROUND_UP

阅读更多

ROUNDING:

如何使用 Oracle Round 函数 (四舍五入) 相当于java.RoundingMode中的HALF_UP,此舍入模式就是通常学校里讲的四舍五入
描述 : 传回一个数值,该数值是按照指定的小数位元数进行四舍五入运算的结果。
SELECT ROUND( number, [ decimal_places ] ) FROM DUAL
参数:
number : 欲处理之数值
decimal_places : 四舍五入 , 小数取几位 ( 预设为 0 )
Sample :
select round(123.456, 0) from dual;          回传 123
select round(123.456, 1) from dual;          回传 123.5
select round(123.456, 2) from dual;          回传 123.46
select round(123.456, 3) from dual;          回传 123.456
select round(-123.456, 2) from dual;        回传 -123.46

===================

ROUND_DOWN:

关于TRUNC函数的format,自己现在有点体会,format为day时,只精确到天,而不管几年几月只要是符合的day就可以了,要想确定一年中的某月的某一天就要用trunc(date,''dd'').

  通俗的说吧,format为年时,精确到-----年

  为月时,精确到------年,月(不管哪年,只要是相同的月和哪天)

  为日时,精确到------年,月,日(不管哪年的哪月,只关心是哪天)

  1.TRUNC(for dates)

  TRUNC函数为指定元素而截去的日期值。

  其具体的语法格式如下:

  TRUNC(date[,fmt])

  其中:

  date 一个日期值

  fmt 日期格式,该日期将由指定的元素格式所截去。忽略它则由最近的日期截去

  下面是该函数的使用情况:

  TRUNC(TO_DATE(’24-Nov-1999 08:00 pm’,’dd-mon-yyyy hh:mi am’))

  =’24-Nov-1999 12:00:00 am’

  TRUNC(TO_DATE(’24-Nov-1999 08:37 pm’,’dd-mon-yyyy hh:mi am’,’hh’)) =’24-Nov-1999 08:00:00 am’

  round (date,''format'')未指定format时,如果日期中的时间在中午之前,则将日期中的时间截断为12 A.M.(午夜,一天的开始),否则进到第二天。

  TRUNC(date,''format'')未指定format时,将日期截为12 A.M.,不考虑是否在中午之前的条件。

  2.TRUNC(for number)

  TRUNC函数返回处理后的数值,其工作机制与ROUND函数极为类似,只是该函数不对指定小数前或后的部分做相应舍入选择处理,而统统截去。

  其具体的语法格式如下

  TRUNC(number[,decimals])

  其中:

  number 待做截取处理的数值

  decimals 指明需保留小数点后面的位数。可选项,忽略它则截去所有的小数部分

  下面是该函数的使用情况:

  TRUNC(89.985,2)=89.98

  TRUNC(89.985)=89

  TRUNC(89.985,-1)=80

  注意:第二个参数可以为负数,表示为小数点左边指定位数后面的部分截去,即均以0记

====================

ROUND_UP[这种case较复杂,Oracle本身亦没有单独支持这种rounding的函数],需要判断是否需要用类似:a.interestAmount+ (1/power(10,ccy.DEC) 或者a.interestAmount

 

补充:Rounding知识

java 1.5.enum RoundingMode 跟Oracle中的Rounding概念是一致的且更丰富。

UP

public static final RoundingMode UP
远离零方向舍入的舍入模式。始终对非零舍弃部分前面的数字加 1。注意,此舍入模式始终不会减少计算值的绝对值。

示例:

 

  输入数字 使用 UP 舍入模式
将输入数字舍入为一位数
5.5 6
2.5 3
1.6 2
1.1 2
1.0 1
-1.0 -1
-1.1 -2
-1.6 -2
-2.5 -3
-5.5 -6

 


<!-- -->

DOWN

public static final RoundingMode DOWN
向零方向舍入的舍入模式。从不对舍弃部分前面的数字加 1(即截尾)。注意,此舍入模式始终不会增加计算值的绝对值。

示例:

 

输入数字 使用 DOWN 舍入模式
将输入数字舍入为一位数
5.5 5
2.5 2
1.6 1
1.1 1
1.0 1
-1.0 -1
-1.1 -1
-1.6 -1
-2.5 -2
-5.5 -5

 

HALF_UP

public static final RoundingMode HALF_UP
向最接近数字方向舍入的舍入模式,如果与两个相邻数字的距离相等,则向上舍入。如果被舍弃部分 >= 0.5,则舍入行为同 RoundingMode.UP;否则舍入行为同 RoundingMode.DOWN。注意,此舍入模式就是通常学校里讲的四舍五入。

示例:

 

输入数字 使用 HALF_UP 舍入模式
将输入数字舍入为一位数
5.5 6
2.5 3
1.6 2
1.1 1
1.0 1
-1.0 -1
-1.1 -1
-1.6 -2
-2.5 -3
-5.5 -6

 

分享到:
评论

相关推荐

    MA_Rounding_Candle_HTF - MetaTrader 5脚本.zip

    《MetaTrader 5脚本——MA_Rounding_Candle_HTF指标详解》 在交易领域,技术分析是投资者的重要工具,而MetaTrader 5(MT5)交易平台提供了丰富的自定义指标和脚本,帮助用户实现个性化的交易策略。本文将详细探讨...

    Background_MA_Rounding_Candle_HTF - MetaTrader 5脚本.zip

    《MetaTrader 5脚本:Background_MA_Rounding_Candle_HTF深入解析》 在金融交易领域,MetaTrader 5(MT5)是一个广泛使用的交易平台,它提供了丰富的技术分析工具和自定义指标,使得交易者能够根据市场数据进行复杂...

    MA_Rounding_Channel_HTF - MetaTrader 5脚本.zip

    《MetaTrader 5脚本:MA_Rounding_Channel_HTF详解》 MetaTrader 5(MT5)是一款全球广泛使用的外汇交易和分析平台,它为交易者提供了丰富的技术指标和脚本,以支持复杂的交易策略。本文将深入探讨“MA_Rounding_...

    Exp_MA_Rounding_Candle_MMRec - MetaTrader 5EA.zip

    《基于MetaTrader 5的智能交易系统:Exp_MA_Rounding_Candle-MMRec EA》 在外汇交易领域,MetaTrader 5(MT5)是一个广泛使用的交易平台,它为交易者提供了丰富的工具和技术分析指标,帮助他们制定交易策略。本文将...

    BigDecimal加减乘除计算

    - ROUND_CEILING:向上舍入,接近正无穷大,正数与 ROUND_UP 相同,负数与 ROUND_DOWN 相同。 - ROUND_FLOOR:向下舍入,接近负无穷大,正数与 ROUND_DOWN 相同,负数与 ROUND_UP 相同。 - ROUND_HALF_UP:四舍五...

    PLC 编译器 用于转换梯形图

    #endif //_DEBUG // VDisPlayView message handlers int VDisPlayView::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CScrollView::OnCreate(lpCreateStruct) == -1) return -1; m_pDC=new CClientDC...

    BigDecimal基本运算介绍

    - `ROUND_CEILING`:向正无穷方向舍入,对于正数相当于 `UP`,负数相当于 `DOWN`。 - `ROUND_FLOOR`:向负无穷方向舍入,对于正数相当于 `DOWN`,负数相当于 `UP`。 - `ROUND_HALF_UP`:标准四舍五入,大于等于 0.5 ...

    Exp_MA_Rounding_Channel - MetaTrader 5EA.zip

    《MetaTrader 5 EA:基于MA_Rounding_Channel指标的突破交易系统详解》 在金融交易领域,自动交易系统,特别是外汇市场,已经成为许多交易者首选的工具。MetaTrader 5(MT5)作为一款功能强大的交易平台,为交易者...

    rounding-off_number_animation:一个用于将数字四舍五入到n位有效数字的一般规则的动画的htmlcssjs程序

    标题中的“rounding-off_number_animation”是一个项目名称,它涉及到计算机编程中的一种常见操作——数字四舍五入。在计算和数据处理中,四舍五入是调整数字使其具有特定的有效数字数量,这对于数据展示、计算精度...

    Exp_MA_Rounding_Candle - MetaTrader 5EA.zip

    《基于MetaTrader 5的Exp_MA_Rounding_Candle自动交易程序详解》 在金融交易领域,自动化交易系统已经成为一种趋势,MetaTrader 5(MT5)作为一款强大的交易平台,为交易者提供了丰富的工具和功能。本文将深入探讨...

    金额的大小转换及小数的四舍五入处理

    四舍五入模式有多种,如`ROUND_UP`(向上取整)、`ROUND_DOWN`(向下取整)等,`ROUND_HALF_UP`是最常用的,即常规的四舍五入规则。 总结起来,金额的大小转换涉及到数字的格式化,确保其符合人类阅读习惯;而小数...

    double保留小数

    - `BigDecimal.ROUND_UP`:远离零舍入,无论下一个数字是多少,都向上舍入。 - `BigDecimal.ROUND_DOWN`:向零舍入,无论下一个数字是多少,都向下舍入。 - `BigDecimal.ROUND_CEILING`:远离零舍入到最接近的...

    MA_Rounding_Channel - MetaTrader 5脚本.zip

    《MetaTrader 5脚本——MA_Rounding_Channel详解》 MetaTrader 5(MT5)是全球金融市场中广泛使用的交易平台之一,它为交易者提供了丰富的技术分析工具和自动化交易功能。"MA_Rounding_Channel"是一款专为MT5设计的...

    MA_Rounding_HTF - MetaTrader 5脚本.zip

    《MetaTrader 5脚本——MA_Rounding_HTF深度解析》 在金融交易领域,MetaTrader 5(MT5)是一款广泛使用的交易平台,它提供了丰富的技术分析工具和自动化交易功能。本文将深入探讨一个名为"MA_Rounding_HTF"的...

    sishewuru.rar_四舍五入

    除了标准的四舍五入,还有其他的舍入策略,如向零取整(ROUND_TO_ZERO)、向上取整(ROUND_UP)和向下取整(ROUND_DOWN)。这些策略可以根据实际需求选择使用,比如在金融计算中通常会使用不偏向任何一方的舍入策略...

    python3 小数位的四舍五入(用两种方法解决round 遇5不进)

    print(Decimal('1.325').quantize(Decimal('0.00'), rounding=ROUND_HALF_UP)) ``` `quantize()`方法用于将`Decimal`对象四舍五入到指定的精度,`ROUND_HALF_UP`是四舍五入模式,确保在5时向上取整。 这种被...

    java_double_精度

    BigDecimal 类提供了多种 roundingMode 来控制精度的取值方式,例如 ROUND_UP、ROUND_DOWN、ROUND_HALF_UP 等。我们可以根据实际需求选择合适的 roundingMode 来取值。 在实际项目中,我们经常需要对 double 类型的...

    jdk8patch-halfupround:修补 JDK8 中 HALF_UP NumberFormat 错误的 JavaAgent 实现

    修补 JDK8 HALF_UP 舍入错误问题此补丁尝试解决以下 OpenJDK 问题中描述的问题: :当最后一位数字恰好在大于 5 的舍入位置时,错误的 NumberFormat.format() HALF_UP 舍入 (重复):DecimalFormat RoundingMode....

    oracleEBS_BOM_物料清单.doc

    在 Oracle EBS 中,设置 BOM 参数是指对 BOM 模块的基本参数设置,例如设置 BOM 的单位、精度、 rounding 等。这些参数将影响 BOM 的计算和显示结果。 2. 设置部门分类 部门分类是指对 BOM 中的物料进行分类和管理...

    java&guava讲义.pptx

    * Rounding Mode:在计算double类型时,需要注意舍入方式,例如 ROUND_UP、ROUND_DOWN 等。 该讲义涵盖了 Java 基础知识、Guava 框架的设计理念和使用、Java 集合框架的实现细节等多方面的内容,为学习Java和Guava...

Global site tag (gtag.js) - Google Analytics