早期 CLDC 1.0 裝置普遍缺乏硬體浮點運算單元 (FPU),Java 原生 float/double 不被支援。雖有 MathFP 定點庫,但需手動管理定點轉換細節,易出錯。Henson Float 提供 完整封裝的 Float 類別,API 設計貼近 J2SE java.lang.Float,極大降低使用門檻。
下載:https://henson.newmail.ru/J2ME/Float.java
Float 高度相容| 建構子 | 實例方法 | 靜態方法/常數 |
|---|---|---|
Float() | toString() | ERROR |
Float(long value) | Add(Float) | ZERO |
Float(long value, long exp) | Sub(Float) | ONE |
Float(Float value) | Mul(long/Float) | PI |
Div(long/Float) | E | |
Great/Less/Equal(Float) | LOG10 | |
Neg() | LOGdiv2 | |
toLong() | PIdiv2/4/6/12 | |
isError() | PImul2/4 | |
sin/cos/tan/sqrt | ||
asin/acos/atan/atan2 | ||
parse(String, radix) | ||
exp/log/log10/pow | ||
ceil/floor/abs/Int/Frac | ||
toRadians/toDegrees |
將 Float.java 直接加入專案原始碼目錄,即可像使用普通類別一樣使用:
import henson.midp.Float;
Float a = new Float(3.14);
Float b = new Float(2.71);
Float c = a.Add(b);
Float s = Float.sin(a);
下載:https://henson.newmail.ru/J2ME/Float11.java
CLDC 1.1 原生支援 float/double,但缺少數學函數。Float11 補齊 java.lang.Math 缺失的 double 版本:
double asin(double x)
double acos(double x)
double atan(double x)
double atan2(double y, double x)
double exp(double x)
double log(double x)
double log10(double x)
double pow(double x, double y)
double SQRT3
double LOG10
double LOGdiv2
對於非密集浮點運算場景,Henson Float 的封裝優雅度遠優於手動定點運算;若極度追求效能且能接受定點複雜度,可考慮 MathFP。