BigDecimal double構造器丟失精度

2021-10-23 23:27:23 字數 899 閱讀 3708

分別用double構造器和string構造器構造兩個bigdecimal

//double構造器

bigdecimal d1=

newbigdecimal

(1234.57);

//string構造器

bigdecimal d2=

newbigdecimal

("1234.57");

system.out.

println

(d1)

; system.out.

println

(d1.

tostring()

);system.out.

println

(d2)

; system.out.

println

(d2.

tostring()

);

輸出結果

1234.569999999999936335370875895023345947265625

1234.569999999999936335370875895023345947265625

1234.57

1234.57

由於double的精度確實導致兩個數並不相同,後續呼叫equels和compareto方法都返回false。

system.out.

println

(d1.

equals

(d2));

system.out.

println

(d1.

compareto

(d2));

false

-1

構造器(構造方法)

知識點 1.乙個類即使什麼都不寫,他也會存在乙個方法 構造器 構造方法 2.構造方法的名字必須與定義他的類名完全相同,沒有返回型別,甚至連void也沒有。3.構造方法的呼叫是在建立乙個物件時使用new操作進行的。構造方法的作用是初始化物件。4.有參構造 一旦定義了有參構造,無參一定要寫出來!pack...

構造器(構造方法)

題目 編寫兩個類 和 test,其中 類中宣告私有的底邊長base和高height,同時宣告公共方法訪問私有變數。此外,提供類必要的構造器。另乙個類中使用這些公共方法,計算三角形的面積。回答 public class test public int a,int b public void setba...

構造器,建構函式,構造方法

student s1 new student 類名 物件名 new 構造方法 2 當定義乙個類時,即使類中什麼內容都沒有定義,其也預設的隱藏的存在乙個無參的構造器 預設無參構造器 編譯器提供的。當然我們也可以顯現的定義出來。如 class student 當我們把它顯現的定義出來 class stu...