UFDouble常用方法
UFDouble
NC开发封装的数据类型
基本方法
四则运算
[java]
- add() 参数有UFDouble、double两种,计算UFDouble与另一个UFDouble数值之和或与double类型的数值之和
- sub() 同上,此处为减法
- mulity() 同上,此处为乘法
- div() 同上,除法
求余数
[java]
- mod() 参数为UFDouble类型
数组求和
[java]
- sum() 参数为double[]数组,计算数组元素之和
类型转换
[java]
- toDouble() 转换为Double类型的量
- toString() 转换成String字符串
- toBigDecimal() 转换成BigDecimal类型的量
精度控制
[java]
- setScale() 设置精度,有两个参数,前者是保留小数的位数,后者是四舍五入之类的标识;
例如: new UFDouble().setScale(1, UFDouble.ROUND_HALF_UP); 保留小数点后1位,并“四舍五入”
获取数据
[java]
- byteValue() 获取当前UFDouble的byteValue
- intValue() 获取当前UFDouble数值的int整形部分
- doubleValue() 获取doublevalue
- floatValue() 获取floatvalue
- 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 } } 复制代码