2020-12-21

UFDouble基本方法

UFDouble常用方法

UFDouble

    NC开发封装的数据类型

基本方法

四则运算

 

 
  1. add() 参数有UFDouble、double两种,计算UFDouble与另一个UFDouble数值之和或与double类型的数值之和

  2. sub() 同上,此处为减法

  3. mulity() 同上,此处为乘法

  4. div() 同上,除法

 

求余数

 

mod()    参数为UFDouble类型

 

数组求和

 

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

 

类型转换

 

 
  1. toDouble() 转换为Double类型的量

  2. toString() 转换成String字符串

  3. toBigDecimal() 转换成BigDecimal类型的量

 

精度控制

 

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

 

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

获取数据

 

 
  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
		
	}
}
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值