看此文前,你可以首先參考一下《J2ME中定點(diǎn)庫(kù)MathFP使用入門》一文。MathFP是一個(gè)定點(diǎn)的浮點(diǎn)模擬工具,這套類庫(kù)沒(méi)有封裝細(xì)節(jié),而是把一系列的轉(zhuǎn)換操作留給了用戶,這些頻繁的操作非常容易出錯(cuò),但是效率上占一定的優(yōu)勢(shì)。考慮到極少有J2ME設(shè)備設(shè)有浮點(diǎn)運(yùn)算單元,特別是在CLDC1.0設(shè)備上不適合使用沉重的浮點(diǎn)運(yùn)算。所以如果你的應(yīng)用需要進(jìn)行沉重的浮點(diǎn)運(yùn)算,比如基于浮點(diǎn)的游戲,可以采用MathFP。這樣至少比你采用手動(dòng)的乘除法來(lái)的優(yōu)雅。而對(duì)于并非沉重的浮點(diǎn)計(jì)算,我推薦大家使用由_Nikolay Klimchuk_ 開發(fā)的henson.midp.Float庫(kù)(ver 1.01) ,一個(gè)封裝良好的Float類。
首先到http://henson.newmail.ru/j2me/Float.java下載源代碼。
henson.midp.Float類非常適合科學(xué)計(jì)算,他的范圍很大,具有64位的尾數(shù)(mantissa),64位的指數(shù)。該Float類和J2SE標(biāo)準(zhǔn)的Float類十分的相似,提供了完備的方法,參考下表:
非靜態(tài)成員非靜態(tài)成員常量Float()Float的使用和大多數(shù)提供源代碼的第三方庫(kù)一樣,只要直接將其加入到你的工程中來(lái)就可以了。
Float類的license很特別,根據(jù)作者的要求,需要你做到以下幾點(diǎn):
也許你最關(guān)心這個(gè)模擬類的速度。以下是官方的測(cè)試數(shù)據(jù)供你參考。
測(cè)試程序下載地址:
http://henson.newmail.ru/j2me/FloatTest.jad 
http://henson.newmail.ru/j2me/FloatTest.jar 
/-/ Nokia
N-Gage1016594164112973438632842196310i43702461708953631467324131204023510i42022435683753241455022370166786100440725347065541014905237941606966104381251171585492150562387417318365010946091766129734847031464176507654531265103125155328*66003281575001885473235132862206086362310149832522395322382367076004942907956141578248216223100672739671094990542490536291262686230 (3.14)9655381654108832125165*6230 (4.28)70541411978572387366923786230i (3.23)62735199461917473813183072504254243170525466149432248314524761028114143818745327191109626028114140615745327661187663011063156942031094500/-/ Siemens
S5528899165595089936306101370200670169181M5530441170255358438420105500207800*SX1111067218751563398571414203CX658442583423274431219923S652121393372454661191798M75 (new)2671533092404201186790/-/ SonyEriCSSon
K300i (new)7393541094646171630412389K750i654319980521149628481970Z10107854041231886202632892603K700i7123701085639168730491864T61020580115753358528100713658774076280T610 (R3C)878050551451511385304404212034595T610 (R6C)987555751621012235332954941037920P90025010934415640622031062P800500282813625156332501750Thank you to Dmitry Gorilowsky for measurementsPDA/-/ Sony
Clie N61048830249608477035810102100445530206440
            _Nikolay Klimchuk_ 還開發(fā)了一些相關(guān)工具讓該Float的使用變得更加的簡(jiǎn)單。FloatConv是一個(gè)數(shù)學(xué)轉(zhuǎn)換器,它將數(shù)學(xué)算數(shù)表達(dá)式轉(zhuǎn)換為midp1.0平臺(tái)上使用henson.midp.Float的等價(jià)表達(dá)式。這樣使得使用henson.midp.Float的成本大大降低了。這一工具是基于J2SE 。 
該工具的下載地址是:http://www.unteh.com/download/FloatConv/FloatConvW.zip

henson.midp.Float11 是對(duì)CLDC1.1的擴(kuò)展。提供了CLDC1.1相對(duì)比J2SE缺失的浮點(diǎn)操作:
下載地址:http://henson.newmail.ru/j2me/Float11.java
henson.midp.Float11的license和henson.midp.Float是一樣的。
另外一套功能相似的基于CLDC1.0的LIB是Beartronics Java J2ME Libraries的fpmathlib,地址 :http://sourceforge.net/PRojects/bearlib/,感興趣的朋友可以自行研究。
(出處:http://m.survivalescaperooms.com)
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注