UFDouble常用方法

UFDouble常用方法

UFDouble

NC开发封装的数据类型

基本方法

四则运算

[java] view plain copy
  1. add() 参数有UFDouble、double两种,计算UFDouble与另一个UFDouble数值之和或与double类型的数值之和
  2. sub() 同上,此处为减法
  3. mulity() 同上,此处为乘法
  4. div() 同上,除法

求余数

[java] view plain copy
  1. mod() 参数为UFDouble类型

数组求和

[java] view plain copy
  1. sum() 参数为double[]数组,计算数组元素之和

类型转换

[java] view plain copy
  1. toDouble() 转换为Double类型的量
  2. toString() 转换成String字符串
  3. toBigDecimal() 转换成BigDecimal类型的量

精度控制

[java] view plain copy
  1. setScale() 设置精度,有两个参数,前者是保留小数的位数,后者是四舍五入之类的标识;

例如: new UFDouble().setScale(1, UFDouble.ROUND_HALF_UP); 保留小数点后1位,并“四舍五入”

获取数据



  1. [java] view plain copy
    1. byteValue() 获取当前UFDouble的byteValue
    2. intValue() 获取当前UFDouble数值的int整形部分
    3. doubleValue() 获取doublevalue
    4. floatValue() 获取floatvalue
    5. getDouble()   

代码演示

package nc.test;
import java.math.BigDecimal;   
import nc.vo.pub.lang.UFDouble;  
import nc.vo.pubapp.pattern.data.ValueUtils;    
/**  
* UFDouble 常用方法  
* @date 2017-11-06  
* @author niaonao  
*  
*/  
public class TestUFDouble {    
    @SuppressWarnings("unused")  
    public static void main(String[] args){
          UFDouble UFDOUBLE_30 = ValueUtils.getUFDouble(30);
          UFDouble UFDOUBLE_40 = ValueUtils.getUFDouble(40);
          UFDouble UFDOUBLE_50 = ValueUtils.getUFDouble(50);
          UFDouble UFDOUBLE_100 = ValueUtils.getUFDouble(100);
          UFDouble UFDOUBLE_500 = ValueUtils.getUFDouble(500);

          UFDouble uf_add;
          UFDouble uf_sub;
          UFDouble uf_mul;
          UFDouble uf_div;
          UFDouble uf_sum;
          
          /**
          * 基本运算法则
          */
           
         //UFDouble + UFDouble及UFDouble + double
          uf_add = UFDOUBLE_30.add(UFDOUBLE_40);  /*70.00000000*/
          uf_add = uf_add.add(20);    /*90.00000000*/
          //UFDouble - UFDouble及UFDouble - double
          uf_sub = uf_add.sub(UFDOUBLE_50);   /*40.00000000*/
          uf_sub = uf_sub.sub(10);    /*30.00000000*/
          //UFDouble * UFDouble及UFDouble * double
          uf_mul = uf_sub.multiply(UFDOUBLE_100); /*3000.00000000*/
          uf_mul = uf_mul.multiply(1);            /*3000.00000000*/
          //UFDouble / UFDouble及UFDouble / double
          uf_div = uf_mul.div(UFDOUBLE_500);      /*6.00000000*/
          uf_div = uf_div.div(6);     /*1.00000000*/
          
          /**
          * 数组求和
          */
          double[] double_array =
                   new double[]{1,2,3,4,5};    /*1.0, 2.0, 3.0, 4.0, 5.0*/
          uf_sum = UFDouble.sum(double_array);    /*15.00000000*/
          
          /**
          * 数值比较
          */
          boolean flag = 
                  ( uf_sum.compareTo( UFDOUBLE_30.div(2) ) == 0) ? true : false;
          if (!flag) return;
            
          /**
          * 类型转换及精度控制
          * UFDouble默认精度为8位
          */
          UFDouble uf_value = ValueUtils.getUFDouble(1234.56789); //1234.56789000
          
          int byteValue = uf_value.byteValue();   //-46
          int intValue = uf_value.intValue();     //1234
          double doubleValue = uf_value.doubleValue();    //1234.456789
          float floatValue = uf_value.floatValue();       //1234.456789
          Double DouValue = uf_value.getDouble(); //1234.456789
          Double douValue = uf_value.toDouble();  //1234.456789
          //求余数(1234.56789000 / 30)
          UFDouble uf_mod = uf_value.mod(UFDOUBLE_30);    //4.56789000
          //精度控制
          UFDouble scaleValue1and1 = uf_value.setScale(1, 1); //1234.5
          UFDouble scaleValue1and2 = uf_value.setScale(1, 2); //1234.6
          UFDouble scaleValue1and3 = uf_value.setScale(1, 3); //1234.5
          UFDouble scaleValue1and4 = uf_value.setScale(1, 4); //1234.6
          UFDouble scaleValue1and5 = uf_value.setScale(1, 5); //1234.6
          UFDouble scaleValue2and1 = uf_value.setScale(2, 1); //1234.56
          UFDouble scaleValue3and1 = uf_value.setScale(3, 1); //1234.567
          BigDecimal bjgValue = uf_value.toBigDecimal();      //1234.56789000
          String stringValue = uf_value.toString();   //1234.56789000
         
       }
  }  复制代码


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值