UFDouble基本方法

来源:互联网 发布:java未来发展方向 编辑:程序博客网 时间:2024/06/11 04:31

UFDouble常用方法

UFDouble

    NC开发封装的数据类型

基本方法

四则运算

add()    参数有UFDouble、double两种,计算UFDouble与另一个UFDouble数值之和或与double类型的数值之和sub()    同上,此处为减法mulity()    同上,此处为乘法div()    同上,除法

求余数

mod()    参数为UFDouble类型

数组求和

sum()    参数为double[]数组,计算数组元素之和

类型转换

toDouble()    转换为Double类型的量toString()    转换成String字符串toBigDecimal()    转换成BigDecimal类型的量

精度控制

setScale()    设置精度,有两个参数,前者是保留小数的位数,后者是四舍五入之类的标识;

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

获取数据

byteValue()    获取当前UFDouble的byteValueintValue()     获取当前UFDouble数值的int整形部分doubleValue()     获取doublevaluefloatValue()    获取floatvaluegetDouble() 

代码演示

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 + doubleuf_add = UFDOUBLE_30.add(UFDOUBLE_40);/*70.00000000*/uf_add = uf_add.add(20);/*90.00000000*///UFDouble - UFDouble及UFDouble - doubleuf_sub = uf_add.sub(UFDOUBLE_50);/*40.00000000*/uf_sub = uf_sub.sub(10);/*30.00000000*///UFDouble * UFDouble及UFDouble * doubleuf_mul = uf_sub.multiply(UFDOUBLE_100);/*3000.00000000*/uf_mul = uf_mul.multiply(1);/*3000.00000000*///UFDouble / UFDouble及UFDouble / doubleuf_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.56789000int byteValue = uf_value.byteValue();//-46int intValue = uf_value.intValue();//1234double doubleValue = uf_value.doubleValue();//1234.456789float floatValue = uf_value.floatValue();//1234.456789Double DouValue = uf_value.getDouble();//1234.456789Double 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.5UFDouble scaleValue1and2 = uf_value.setScale(1, 2);//1234.6UFDouble scaleValue1and3 = uf_value.setScale(1, 3);//1234.5UFDouble scaleValue1and4 = uf_value.setScale(1, 4);//1234.6UFDouble scaleValue1and5 = uf_value.setScale(1, 5);//1234.6UFDouble scaleValue2and1 = uf_value.setScale(2, 1);//1234.56UFDouble scaleValue3and1 = uf_value.setScale(3, 1);//1234.567BigDecimal bjgValue = uf_value.toBigDecimal();//1234.56789000String stringValue = uf_value.toString();//1234.56789000}}