程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 在J2ME中模擬浮點運算

在J2ME中模擬浮點運算

編輯:關於JAVA

眾所周知,CLDC1.0不支持浮點數,即不支持float和double兩種基本數據類型,但是在程序中,我們經常需要使用一些浮點數來進行運算。這個時候你可以使用MathFP浮點數庫,但是有些時候我們做的工作很簡單,對於結果的要求也不精確,這個時候,我們就可以使用以下方法來模擬浮點運算。

模擬浮點運算的原理其實很簡單,就是先將需要運算的數字擴大10的整數次方倍然後進行運算。

例如,你需要計算一個圓的周長,假設圓的半徑為6,則圓的周長應該為2 * 6 * 3.14,而CLDC1.0中沒有浮點數,使用數字3來代替3.14誤差又比較大,則可以這樣來處理:

(2 * 6 * 314) / 100

即先將需要運算的浮點數,如3.14擴大100倍,然後在運算結束時再除以100即可。

如下是簡單的實現代碼:

//計算圓周長

int r = 6;
int pi = 314;
int l = 0;
l = (2 * 6 * 314)/100;

則變量l就是近似的圓周長。

注意,上面的計算使用的是數學上的去1法,即不管小數部分是多少都捨去。如果想更加精確一些(當然還是不夠准確),可以再使用四捨五入,這樣上面的代碼可以修改為:

//計算圓周長
int r = 6;
int pi = 314;
int l = 0;
l = (2 * 6 * 314 + 50)/100;

這裡在運算結果的基礎上加上50就實現了四捨五入,如果你的小數後面是3位,則需要加上500,依次類推。

這樣,通過上面的方式,可以實現近似的浮點運算,雖然不是很准確,但是還是可以適用一些要求不高的場合。

當然,隨著CLDC1.1的普及,將為J2ME帶來float和double這兩種數據類型,那個時候就不需要這些內容了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved