double類型轉換成bigdecimal類型 decimal和float可以互相轉化么?
decimal和float可以互相轉化么?你可以直接使用轉換類轉換。比如decimal (0.01f) decimal的有效位數很大,達到28位,但其數據范圍比float和double類型小。小數類型
decimal和float可以互相轉化么?
你可以直接使用轉換類轉換。比如decimal (0.01f) decimal的有效位數很大,達到28位,但其數據范圍比float和double類型小。
小數類型不是C#中的基本類型,所以使用時會影響計算的性能。所以轉換很可能會出錯。如果超過十進制的最大范圍。請注意處理異常。
為什么java的BigDecimal也無法精準計算double類型嗎?
不要使用double來構造BigDcimal對象。大十進制和。;的構造者有這樣一段話,:。
這個構造函數的結果可能有些不可預測。人們可能會假設用Java編寫會創(chuàng)建一個恰好等于0.1的(未縮放值為1,縮放比例為1),但它實際上等于0.1000000000000551151231257827021181583404541015625。這是因為0.1不能精確地表示為(或者,就此而言,表示為任何有限長度的二進制分數)。因此,傳遞給構造函數的值并不完全等于0.1,另一方面,外觀構造函數完全是predictabl:編寫的,正如人們所預料的那樣,它創(chuàng)建了一個完全等于0.1的。在那里,通常建議優(yōu)先使用字符串構造函數。因為替身本身就是不準確,如果用double作為構造函數參數,BigDecimal對象也會不準確。比如用浮點數0.1構造BigDecimal對象,它的實際值是0.1000000000511512312572702181583404541015625。因此,建議用于需要精確計算的場景。
簡而言之,在需要精確浮點數計算的場景中,不要使用double類型的變量,float anywhere,而是使用String類型創(chuàng)建BigDecimal。