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




  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
数据库设计规范 统一要求规范 1 主键及主键约束 pk_表名,其中表名不含"系统规则名",例如:部门表org_dept的主键为"pk_dept", 主键约束名为"pk_dept"。 2 外键及外键约束 子表中的外键名和主表的主键名一致,外键约束名为"fk_"加上主表的表名。例如:主表 表名为tm_in_h,主表主键名为pk_in_h,主表约束名为pk_in_h; 子表名为tm_in_b,子表主键名为pk_in_b,子表主键约束名为pk_in_b,子表外键名为p k_in_h,子表外键约束名为fk_in_h。 3 表字段的引用 一个表a的字段在引用另外一个表b的主键字段时,表a的该字段的命名与表b的主键名称 一样。例如:如果表a有一个引用"部门"的字段,其字段直接命名为"pk_dept"。如果有 多个字段引用同一个档案,则不用如此处理。 4 属性命名开始字符规范 主要以数据库字段的类型和Java类型结合来标示字段名的开始字符 "数据库类型 "JAVA类型 "开始 "示例字段名 "示例说明 " " " "字符 " " " "char(20) "java.lang.String "c,pk_"cproductid "和引用的表 " " " " ",pk_wo "的主键名一 " " " " " "致,所以如 " " " " " "果是工作单i" " " " " "d的话,用的" " " " " "是pk_wo,如" " " " " "果是NC产品 " " " " " "表的话,是c" " " " " "productid。" "varchar(30) "java.lang.String "v "vbillcode "单据号 " "char(19) "nc.vo.pub.lang.UFDateTim"t "tmaketime "时间 " " "e " " " " "char(10) "nc.vo.pub.lang.UFDate "d "dauditdate "日期 " "int "java.lang.Integer "i "iprintcount"打印次数 " "int "java.lang.Integer(元数 "f "fstatusflag"单据状态 " " "据为整数枚举) " " " " "char(1) "nc.vo.pub.lang.UFBoolean"b "boutendflag"是否出库完 " " " " " "成 " "decimal(28,8"nc.vo.pub.lang.UFDouble "n "nmny "金额 " ") " " " " " "char(8) "nc.vo.pub.lang.UFTime "t "tdelivtime "运输时间 " 5 单据状态 "字段名字 "字段说明 "数据库类型 "JAVA类型 " "fstatusflag "单据状态 "int "java.lang.Intege" " " " "r " 6 审计信息 "字段名 "描述 "数据类型 "长 " " " " "度 " "creator "创建人 "char "20 " "creationtime"创建时间"char "19 " "modifier "修改人 "char "20 " "modifiedtime"修改时间"char "19 " "pk_corp "公司/单 "char "4 " " "位 " " " 7 审批流信息 "字段名 "描述 "数据类型 "长 " " " " "度 " "operator "制单人 "char "20 " "approver "审核人 "char "20 " 8 系统信息 "字段名 "描述 "数据类型 "长 " " " " "度 " "dr "删除标志"SMALLINT "2 " "ts "时间戳 "char "19 " 9 树型业务对象的内部编码 "code "name "字段名 "数据类型 "长度 "精度 "备注 " "innercode "内部编码 "Innercode "varchar "60 " " " 10 打印次数 "字段名字 "字段说明 "数据库类型 "JAVA类型 " "iprintcount "打印次数 "int "java.lang.Intege" " " " "r " 11 单据日期时间 "字段名字 "字段说明 "数据库类型 "JAVA类型 " "dbilldate "单据日期 "char(19) "nc.vo.pub.lang.UFDate " "taudittime "审核时间 "char(19) "nc.vo.pub.lang.UFDateTim" " " " "e " 制单日期、审批日期字段删除掉 12 单据属性名 "字段名字 "字段说明 "数据库类型 "JAVA

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

niaonao

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

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

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

打赏作者

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

抵扣说明:

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

余额充值