2017-10-05 40 views
-1

我有一個關於groovy中的大數字的問題,我在調用DB的腳本中編寫並將預算值放入名爲toub_start_budget的變量中,存儲的值爲2570000000. 因爲我想做算術運算我創建了另一個名爲toub_budget的變量,並將第一個變量的值作爲float放入它中。 問題是新變量沒有將數據保存爲float,而是以2.56999987E9的數字形式保存。 和我做的算術錯了,比如除以1000000,會帶來2569.9而不是精確的結果2570(精度很重要)。 有人可以請建議如何處理大數字,算術? 問候在groovy + Jmeter + java中處理大數字

enter image description here

enter image description here

+0

使用'BigDecimal',而不是'float' –

+1

的代碼和輸出請不要發表圖片看,但發佈文本本身縮進四個空格。 – Vampire

+0

你想花一些認真的時間學習浮點數的基礎知識......例如https://stackoverflow.com/questions/588004/is-floating-point-math-broken ...然後你讀到關於浮點JVM上的點號... – GhostCat

回答

2

不要使用float,它是由定義不準確的。如果您需要進行精確計算和任意大數字,請使用BigDecimal。如果使用Groovy,然後只是計算的,Groovy將自動使用BigDecimal在適當的時候,你可以通過執行(2570000000/1000).getClass()(2570000000/1001).getClass()