ク ラス BidDecimal が 勉強します
来源:互联网 发布:163 pop3 端口 编辑:程序博客网 时间:2024/05/18 00:21
BigDecimal类实现任意精度的浮点运算,其有很多种构造方法,但常用的应该如下所示(个人推测): BigDecimal(BigInteger val) BigDecimal(double val) BigDecimal(int val) BigDecimal(long val) BigDecimal(String val) 以上构造方法分别通过传入大整数,双精度浮点数,整数,长整数,字符串(不能传入Float型)作为参数而构造BigDecimal 对象。参考API,上面构造方法还有对应的传入MathContext对象作为参数如BigDecimal(BigInteger val, MathContext mc) ,MathContext类用于设定精度和舍入规则。 add(BigDecimal augend) subtract(BigDecimal subtrahend) multiply(BigDecimal multiplicand) divide(BigDecimal divisor) pow(int n) 以上方法返回大小数之和,差,积,商与幂。还可以制定舍入方式即roundingMode,通常使用的有ROUND_HALF_UP(四舍五入),ROUND_HALF_DOWN(向下取整),ROUND_DOWN,ROUND_UP。 在网上搜到很多使用BigDecimal类求圆周率的例子,其实在POJ上1001题即为求高精度运算。其程序代码如下: import java.util.Scanner; public class Pku1001 { public static void main(String[] args) { ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー まで: 在我现在进行的项目中用到这种类型,用它来表示金额。可这种类型非常精确,当你在数据库里插入一条数据是6.00时,在显示时却是6.000000000000000000000。在页面显示非常不美观。在网上找了找,还真的找到了解决办法拿来和大家分享一下,在以后做系统时可以用到。它不仅可以做到double和float,而且在商业计算上也能显示它的作用。 java.math.BigDecimal。BigDecimal一共有4个够造方法,让我先来看看其中的两种用法:
使用BigDecimal要用String来够造,要做一个加法运算,需要先将两个浮点数转为String,然后够造成BigDecimal,在其中一个上调用add方法,传入另一个作为参数,然后把运算的结果(BigDecimal)再转换为浮点数。 public static double add(double v1,double v2) Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1497357 |
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
我的为题:一个 double i =1 ,double j = 5 ,double result = i/j ,result = 0.2
我想得到 精度为4 既 result = 0.2000怎么做?
如下:
import java.math.BigDecimal;
import java.text.DecimalFormat;
public class bigDecimal {
public static void main(String[] args) {
System.out.println("test0 = "+new BigDecimal(1).divide(new BigDecimal(5), 4, BigDecimal.ROUND_HALF_UP));
String rateString = (new DecimalFormat("##0.0000").format(0.2)).toString();
System.out.println("test1 = "+rateString);
System.out.println("test2 = "+new BigDecimal(0.2).setScale(4,BigDecimal.ROUND_HALF_UP));
System.out.println("test3 = "+new BigDecimal(2.0).setScale(4));
System.out.println("test4 = "+new BigDecimal(2).setScale(4));
System.out.println("test5 = "+new BigDecimal(0.2).setScale(4));
}
}
结果为:
test0 = 0.2000
test1 = 0.2000
test2 = 0.2000
test3 = 2.0000
test4 = 2.0000
Exception in thread "main" java.lang.ArithmeticException: Rounding necessary
at java.math.BigDecimal.divide(BigDecimal.java:1346)
at java.math.BigDecimal.setScale(BigDecimal.java:2308)
at java.math.BigDecimal.setScale(BigDecimal.java:2348)
at bigDecimal.main(bigDecimal.java:13)
- ク ラス BidDecimal が 勉強します
- エラー CS0246: 型または名前空間名 'MySql' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています
- 日本語を勉強します(summary)
- 数字の書式を変換するクラス
- Java8クラス
- StandardSetController クラス
- ORA-01631 最大エクステント:%sに達しました
- Windows Driver Kit (WDK) 8.0 がリリースされました
- Listのソート・合計に関するUtilクラス
- リクエストパラメータを取得する<bean:parameter>
- 日時の書式を変換するクラス
- クラスのEJB
- 内部エラー -選択したファイルは変更できないシステムファイルです。これは表示されません
- アスペクト・ライブラリを作る 其ノ参 -- アスペクト・ライブラリを使用する
- Javassist -- Java バイトコードを操作するクラスライブラリ -- 入門
- [VisualStudio2005] 検索するファイルが見つかりませんでした
- 指定した文字列が含まれるか判定する<logic:match、notMatch>
- iwcコピー時計の調和がとれている米を探します
- DBCP使用方法实例
- Eclipse+Tomcat+MySQL的数据库连接池配置
- 25家往昔明星网站“血泪史” 教你如何过冬
- 截取字符串的函数
- 浏览器刷新页面后向服务器发出两次请求的问题
- ク ラス BidDecimal が 勉強します
- 希望的和看到的--外甥学Java
- 歌词显示原理
- tomcat 5.5 在Linux下配置 apr
- 缩略图
- StringWriter/PrintWriter
- Debian的APT文档
- css 调用时路径 及 编码格式
- Application.EnableVisualStyles Bug