我正在爲我的計算機科學課程開發圖形計算應用程序。我正在做很多矢量計算,但有時我會因爲浮點運算而得到一些嚴重的截斷。Java - 浮點數有限小數點但沒有昏迷
問題是我嘗試了一些限制浮點數的小數位數的方法,例如2個地方。以下是我嘗試過的一些東西:
1 - 除以100然後乘以100.這不是所有的時間。其實這對我來說都不適合。
2 - 使用DecimalFormat。如果我有1000以下的數字,這種格式化方法效果很好。當我有1003.3124這樣的數字時,它的格式爲1,003.31。由於這個格式化會返回一個String,所以Floats的解析函數由於昏迷而不起作用。我嘗試將DecimalFormatSymbols()setGroupingSeparator設置爲不同的字符,包括無空格和無長字符('\ u0200B','\ u0000',...),但是我得到'?'而不是所需的字符。
3 - 將語言環境設置爲美國。由於我的Windows運行在巴西葡萄牙語(這裏的點和昏迷有不同的論文:您的1,300.42是我們的1.300,42!)我認爲這很愚蠢,但這不是問題。這也沒有解決。
4 - 取出字符串,刪除昏迷並返回浮點數。這就是我現在正在做的事情,它工作正常。但是,因爲它是一個圖形應用程序,所以我一直在用數字進行標準化。所以String解決方案總是太重了。
那麼你知道解決這個問題的另一種方法嗎?我需要最優化的一個。對不起,如果我不清楚。
您想限制僅用於顯示的小數位數,還是用於內部存儲/計算? – leonbloy 2013-05-02 13:28:09