- N +

decimal是什么類型 為什么要使用decimal類型

老鐵們,大家好,相信還有很多朋友對于decimal是什么類型和為什么要使用decimal類型的相關問題不太懂,沒關系,今天就由我來為大家分享分享decimal是什么類型以及為什么要使用decimal類型的問題,文章篇幅可能偏長,希望可以幫助到大家,下面一起來看看吧!

bigdecimal是什么類型

decimal在java中的用BigDecimal表示的。BigDecimal:不可變的、任意精度的有符號十進制數。BigDecimal由任意精度的整數非標度值和32位的整數標度(scale)組成。如果為零或正數,則標度是小數點后的位數。如果為負數,則將該數的非標度值乘以10的負scale次冪。因此,BigDecimal表示的數值是(unscaledValue×10-scale)。BigDecimal類提供以下操作:算術、標度操作、舍入、比較、哈希算法和格式轉換。

decimal在mysql中是什么類型

decimal是MySQL中存在的精準數據類型。

MySQL中的數據類型有:float,double等非精準數據類型和decimal這種精準。區別:float,double等非精準類型,在DB中保存的是近似值。Decimal則以字符串的形式保存精確的原始數值。decimal介紹:decimal(a,b)其中:a指定指定小數點左邊和右邊可以存儲的十進制數字的最大個數,最大精度38。b指定小數點右邊可以存儲的十進制數字的最大個數。小數位數必須是從0到a之間的值。默認小數位數是0。備注:DECIMAL數據類型用于要求非常高的精確度的計算中,這些類型允許指定數值的精確度和計數方法作為選擇參數。精確度在這里是指為這個值保存的有效數字的總個數,而計數方法表示小數點后數字的個數。

C#decimal是什么類型以及它的作用

decimal在sqlserver里是精確值類型,精度38;在C#里是表示128位數據類型。double相比,decimal類型具有更高的精度和更小的范圍,它適合于財務和貨幣計算。decimal:有效位:±1.0×10(-28次方)到±7.9×10(28次方)精度:28到29位double:有效位:±5.0×10(-324次方)到±1.7×10(308次方)精度:15到16位

為什么java的BigDecimal也無法精準計算double類型嗎

不要使用double來構造一個BigDcimal對象。BigDecimal的構造函數有這么一段說明:

Theresultsofthisconstructorcanbesomewhatunpredictable.OnemightassumethatwritinginJavacreatesawhichisexactlyequalto0.1(anunscaledvalueof1,withascaleof1),butitisactuallyequalto0.1000000000000000055511151231257827021181583404541015625.Thisisbecause0.1cannotberepresentedexactlyasa(or,forthatmatter,asabinaryfractionofanyfinitelength).Thus,thevaluethatisbeingpassedintotheconstructorisnotexactlyequalto0.1,appearancesnotwithstanding.Theconstructor,ontheotherhand,isperfectlypredictable:writingcreatesawhichisexactlyequalto0.1,asonewouldexpect.Therefore,itisgenerallyrecommendedthattheStringconstructorbeusedinpreferencetothisone.

由于double本身是不精確的,如果使用double作為構造函數參數,也會導致BigDecimal對象不精確,比如使用浮點數0.1來構造一個BigDecimal對象,它的實際值為0.1000000000000000055511151231257827021181583404541015625,所以,需要精確計算的場景,推薦使用String類型的構造函數。

總之,在需要精確浮點數計算的場景,不要在任何地方使用double,float類型的變量,應該使用String類型來創建BigDecimal.

文章分享結束,decimal是什么類型和為什么要使用decimal類型的答案你都知道了嗎?歡迎再次光臨本站哦!

返回列表
上一篇:
下一篇: