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 |
分享到:
相关推荐
《MetaTrader 5脚本——MA_Rounding_Candle_HTF指标详解》 在交易领域,技术分析是投资者的重要工具,而MetaTrader 5(MT5)交易平台提供了丰富的自定义指标和脚本,帮助用户实现个性化的交易策略。本文将详细探讨...
《MetaTrader 5脚本:Background_MA_Rounding_Candle_HTF深入解析》 在金融交易领域,MetaTrader 5(MT5)是一个广泛使用的交易平台,它提供了丰富的技术分析工具和自定义指标,使得交易者能够根据市场数据进行复杂...
《MetaTrader 5脚本:MA_Rounding_Channel_HTF详解》 MetaTrader 5(MT5)是一款全球广泛使用的外汇交易和分析平台,它为交易者提供了丰富的技术指标和脚本,以支持复杂的交易策略。本文将深入探讨“MA_Rounding_...
《基于MetaTrader 5的智能交易系统:Exp_MA_Rounding_Candle-MMRec EA》 在外汇交易领域,MetaTrader 5(MT5)是一个广泛使用的交易平台,它为交易者提供了丰富的工具和技术分析指标,帮助他们制定交易策略。本文将...
- ROUND_CEILING:向上舍入,接近正无穷大,正数与 ROUND_UP 相同,负数与 ROUND_DOWN 相同。 - ROUND_FLOOR:向下舍入,接近负无穷大,正数与 ROUND_DOWN 相同,负数与 ROUND_UP 相同。 - ROUND_HALF_UP:四舍五...
#endif //_DEBUG // VDisPlayView message handlers int VDisPlayView::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CScrollView::OnCreate(lpCreateStruct) == -1) return -1; m_pDC=new CClientDC...
- `ROUND_CEILING`:向正无穷方向舍入,对于正数相当于 `UP`,负数相当于 `DOWN`。 - `ROUND_FLOOR`:向负无穷方向舍入,对于正数相当于 `DOWN`,负数相当于 `UP`。 - `ROUND_HALF_UP`:标准四舍五入,大于等于 0.5 ...
《MetaTrader 5 EA:基于MA_Rounding_Channel指标的突破交易系统详解》 在金融交易领域,自动交易系统,特别是外汇市场,已经成为许多交易者首选的工具。MetaTrader 5(MT5)作为一款功能强大的交易平台,为交易者...
标题中的“rounding-off_number_animation”是一个项目名称,它涉及到计算机编程中的一种常见操作——数字四舍五入。在计算和数据处理中,四舍五入是调整数字使其具有特定的有效数字数量,这对于数据展示、计算精度...
《基于MetaTrader 5的Exp_MA_Rounding_Candle自动交易程序详解》 在金融交易领域,自动化交易系统已经成为一种趋势,MetaTrader 5(MT5)作为一款强大的交易平台,为交易者提供了丰富的工具和功能。本文将深入探讨...
四舍五入模式有多种,如`ROUND_UP`(向上取整)、`ROUND_DOWN`(向下取整)等,`ROUND_HALF_UP`是最常用的,即常规的四舍五入规则。 总结起来,金额的大小转换涉及到数字的格式化,确保其符合人类阅读习惯;而小数...
- `BigDecimal.ROUND_UP`:远离零舍入,无论下一个数字是多少,都向上舍入。 - `BigDecimal.ROUND_DOWN`:向零舍入,无论下一个数字是多少,都向下舍入。 - `BigDecimal.ROUND_CEILING`:远离零舍入到最接近的...
《MetaTrader 5脚本——MA_Rounding_Channel详解》 MetaTrader 5(MT5)是全球金融市场中广泛使用的交易平台之一,它为交易者提供了丰富的技术分析工具和自动化交易功能。"MA_Rounding_Channel"是一款专为MT5设计的...
《MetaTrader 5脚本——MA_Rounding_HTF深度解析》 在金融交易领域,MetaTrader 5(MT5)是一款广泛使用的交易平台,它提供了丰富的技术分析工具和自动化交易功能。本文将深入探讨一个名为"MA_Rounding_HTF"的...
除了标准的四舍五入,还有其他的舍入策略,如向零取整(ROUND_TO_ZERO)、向上取整(ROUND_UP)和向下取整(ROUND_DOWN)。这些策略可以根据实际需求选择使用,比如在金融计算中通常会使用不偏向任何一方的舍入策略...
print(Decimal('1.325').quantize(Decimal('0.00'), rounding=ROUND_HALF_UP)) ``` `quantize()`方法用于将`Decimal`对象四舍五入到指定的精度,`ROUND_HALF_UP`是四舍五入模式,确保在5时向上取整。 这种被...
BigDecimal 类提供了多种 roundingMode 来控制精度的取值方式,例如 ROUND_UP、ROUND_DOWN、ROUND_HALF_UP 等。我们可以根据实际需求选择合适的 roundingMode 来取值。 在实际项目中,我们经常需要对 double 类型的...
修补 JDK8 HALF_UP 舍入错误问题此补丁尝试解决以下 OpenJDK 问题中描述的问题: :当最后一位数字恰好在大于 5 的舍入位置时,错误的 NumberFormat.format() HALF_UP 舍入 (重复):DecimalFormat RoundingMode....
在 Oracle EBS 中,设置 BOM 参数是指对 BOM 模块的基本参数设置,例如设置 BOM 的单位、精度、 rounding 等。这些参数将影响 BOM 的计算和显示结果。 2. 设置部门分类 部门分类是指对 BOM 中的物料进行分类和管理...
### Oracle ERP EBS 库存模块INV-8个表字段解释 #### 表名:`inv.mtl_system_items` 此表作为Oracle ERP EBS系统中库存管理的核心表,记录了组织内部所有物料的信息。理解其字段意义对于进行物料管理、成本控制及...