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的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
}
}