亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

問課后習題

58ad85240001fa2603820556.jpg

58ad85240001af7a03930536.jpg

58ad852500015c6204100538.jpg

請問為什么p用3.14的時候,周長不是31.4??(用3.13等的時候也一樣)

正在回答

5 回答

精度問題,可以用BigDecimal計算,就不會有這種情況了

1 回復 有任何疑惑可以回復我~
#1

qq_五角心_0 提問者

那我想讓結果最多保留2位小數,怎么做呢?
2017-02-23 回復 有任何疑惑可以回復我~
#2

ziom 回復 qq_五角心_0 提問者

用DecimalFormat格式化就行了
2017-02-23 回復 有任何疑惑可以回復我~
#3

qq_五角心_0 提問者

非常感謝!
2017-02-23 回復 有任何疑惑可以回復我~
#4

ziom 回復 qq_五角心_0 提問者

求采納求采納!
2017-02-23 回復 有任何疑惑可以回復我~
查看1條回復

保留小數:java DecimalFormat format 方法的使用
? 1:new DecimalFormat("00.000").format(pi) //結果:03.142

??? 比實際數字的位數多,不足的地方用0補上。
??? new DecimalFormat("00.00").format(3.14)? //結果:03.14
??? new DecimalFormat("0.000").format(3.14)? //結果: 3.140
??? 比實際數字的位數少:整數部分不改動,小數部分,四舍五入
??? new DecimalFormat("0.000").format(13.146)? //結果:13.146
??? new DecimalFormat("00.00").format(13.146)? //結果:13.15

??? 2:new DecimalFormat("##.###").format(pi) //結果:3.142

??? 比實際數字的位數多,不變。
??? new DecimalFormat("##.###").format(3.14)? //結果:3.14
??? 比實際數字的位數少:整數部分不改動,小數部分,四舍五入
??? new DecimalFormat("#.##").format(13.146)? //結果:13.15

1 回復 有任何疑惑可以回復我~

采用java.math.BigDecimal類來進行精確計算。

????????? 在使用BigDecimal類來進行計算的時候,主要分為以下步驟:

????????????? 1、用float或者double變量構建BigDecimal對象。

???????????? 2、通過調用BigDecimal的加,減,乘,除等相應的方法進行算術運算。

???????????? 3、把BigDecimal對象轉換成float,double,int等類型。

????????? 一般來說,可以使用BigDecimal的構造方法或者靜態方法的?valueOf()方法把基本類型的變量構建成BigDecimal對象。

?1 BigDecimal b1 = new BigDecimal(Double.toString(0.48));
?2 BigDecimal b2 = BigDecimal.valueOf(0.48);??????? 對于常用的加,減,乘,除,BigDecimal類提供了相應的成員方法。

1 public BigDecimal add(BigDecimal value);?
?public static double add(double value1,double value2){
????????? BigDecimal b1 = new BigDecimal(Double.valueOf(value1));
???????? BigDecimal b2 = new BigDecimal(Double.valueOf(value2));
???????? return b1.add(b2).doubleValue();}
//加法
2 public BigDecimal subtract(BigDecimal value);?????????????????? //減法
3 public BigDecimal multiply(BigDecimal value);?????????????????? //乘法
4 public BigDecimal divide(BigDecimal value);???????????????????? //除法

?

測試參數類型為double和String的兩個常用構造函數
?????? BigDecimal aDouble =new BigDecimal(1.22);
??????? System.out.println("construct with a double value: " + aDouble);

??????? BigDecimal aString = new BigDecimal("1.22");
???????? System.out.println("construct with a String value: " + aString);
輸出結果如下:
???????? construct with a double value: 1.219999
???????? construct with a String value: 1.22
String 構造方法是完全可預知的,通常建議優先使用String構造方法

BigDecimal都是不可變的(immutable)的,在進行每一步運算時,都會產生一個新的對象,所以在做加減乘除運算時千萬要保存操作后的值。


java BigDecimal比較大小
比較大小可以用 a.compareTo(b)
返回值??? -1 小于?? 0 等于??? 1 大于

BigDecimal取其中最大、最小值、絕對值、相反數:
  a.max (b) //比較取最大值
  a.min(b) //比較取最小值
  a.abs()//取最絕對值
  a.negate()//取相反數

?

?

?

?

1 回復 有任何疑惑可以回復我~

精度問題吧,我記得可以有個叫PI的方法

0 回復 有任何疑惑可以回復我~

是精度問題,有點記不清了,希望有幫助

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Java入門第二季 升級版
  • 參與學習       531144    人
  • 解答問題       6326    個

課程升級!以終為始告別枯燥,在開發和重構中體會Java面向對象編程的奧妙

進入課程

問課后習題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號