UFDouble基本方法

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




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

niaonao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值