仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 713|回复: 10
打印 上一主题 下一主题

[学习教程] JAVA网站制作之Java中准确盘算的一个类用BigDecimal

[复制链接]
活着的死人 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:19:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
令人可喜的是java现在已经开源了,所以我想我上述的想法也许有一天会实现,因为java一直都是不断创新的语言,每次创新都会给我们惊喜,这也是我喜欢java的一个原因。这个类的确好用。在网上找到年夜的,是一个女Java程序员写的。凶猛~~~~~~哈哈
/*
*创立日期2004-10-14
*
*假如必要准确盘算,非要用String来够造BigDecimal不成
*/
packagecom.lims.actions.testqc.comm;

/**
*@authorJstar
*
*
*窗口>首选项>Java>代码天生>代码和正文
*/
importjava.math.BigDecimal;

/**
*因为Java的复杂范例不克不及够准确的对浮点数举行运算,这个工具类供应精
*确的浮点数运算,包含加减乘除和四舍五进。
*/

publicclassArith{

//默许除法运算精度

privatestaticfinalintDEF_DIV_SCALE=10;

//这个类不克不及实例化

privateArith(){

}

/**

*供应准确的加法运算。

*@paramv1被加数

*@paramv2加数

*@return两个参数的和

*/

publicstaticdoubleadd(doublev1,doublev2){

BigDecimalb1=newBigDecimal(Double.toString(v1));

BigDecimalb2=newBigDecimal(Double.toString(v2));

returnb1.add(b2).doubleValue();

}

/**
*供应准确的减法运算。
*@paramv1被减数
*@paramv2减数
*@return两个参数的差
*/

publicstaticdoublesub(doublev1,doublev2){

BigDecimalb1=newBigDecimal(Double.toString(v1));

BigDecimalb2=newBigDecimal(Double.toString(v2));

returnb1.subtract(b2).doubleValue();

}

/**

*供应准确的乘法运算。

*@paramv1被乘数

*@paramv2乘数

*@return两个参数的积

*/

publicstaticdoublemul(doublev1,doublev2){

BigDecimalb1=newBigDecimal(Double.toString(v1));

BigDecimalb2=newBigDecimal(Double.toString(v2));

returnb1.multiply(b2).doubleValue();

}

/**

*供应(绝对)准确的除法运算,当产生除不尽的情形时,准确到

*小数点今后10位,今后的数字四舍五进。

*@paramv1被除数

*@paramv2除数

*@return两个参数的商

*/

publicstaticdoublediv(doublev1,doublev2){

returndiv(v1,v2,DEF_DIV_SCALE);

}

/**

*供应(绝对)准确的除法运算。当产生除不尽的情形时,由scale参数指

*定精度,今后的数字四舍五进。

*@paramv1被除数

*@paramv2除数

*@paramscale暗示暗示必要准确到小数点今后几位。

*@return两个参数的商

*/

publicstaticdoublediv(doublev1,doublev2,intscale){

if(scale<0){

thrownewIllegalArgumentException("Thescalemustbeapositiveintegerorzero");

}

BigDecimalb1=newBigDecimal(Double.toString(v1));

BigDecimalb2=newBigDecimal(Double.toString(v2));

returnb1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();

}

/**

*供应准确的小数位四舍五进处置。

*@paramv必要四舍五进的数字

*@paramscale小数点后保存几位

*@return四舍五进后的了局

*/

publicstaticdoubleround(doublev,intscale){

if(scale<0){

thrownewIllegalArgumentException("Thescalemustbeapositiveintegerorzero");

}

BigDecimalb=newBigDecimal(Double.toString(v));

BigDecimalone=newBigDecimal("1");

returnb.divide(one,scale,BigDecimal.ROUND_HALF_UP).doubleValue();

}

};



微软什么都提供了。你可以试想一下,如果你是新手,你是希望你点一下按钮程序就能运行那,还是想自己一点一点的组织结构,然后打包发部,调错再打包......
柔情似水 该用户已被删除
沙发
发表于 2015-1-20 12:08:13 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
不帅 该用户已被删除
板凳
发表于 2015-1-23 13:53:16 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
乐观 该用户已被删除
地板
发表于 2015-1-26 18:29:06 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
小魔女 该用户已被删除
5#
发表于 2015-2-4 16:03:24 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
冷月葬花魂 该用户已被删除
6#
发表于 2015-2-8 19:39:00 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
老尸 该用户已被删除
7#
发表于 2015-2-9 04:57:45 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
分手快乐 该用户已被删除
8#
发表于 2015-2-22 20:11:31 | 只看该作者
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
爱飞 该用户已被删除
9#
发表于 2015-3-7 01:56:05 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
谁可相欹 该用户已被删除
10#
发表于 2015-3-13 01:10:45 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
山那边是海 该用户已被删除
11#
发表于 2015-3-20 08:48:50 | 只看该作者
是一种为 Internet发展的计算机语言
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 04:25

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表