CLDC 1.0 不支援 float、double,但遊戲與工具類應用常需小數運算。若不想引入 MathFP 等第三方庫,可用「定點數」思想:將數值擴大 10 的 N 次方轉為整數運算,最後再除以對應倍數還原。
以圓周長計算為例:半徑 6,圓周率取 3.14。
公式:2 × 6 × 3.14 → 放大 100 倍:(2 × 6 × 314) / 100
int r = 6;
int pi = 314; // 3.14 × 100
int l = (2 * r * pi) / 100; // 結果 37(實際 37.68)
int r = 6;
int pi = 314;
int l = (2 * r * pi + 50) / 100; // +50 實現四捨五入,結果 38
若小數位為 3 位(如 3.141),則放大 1000 倍,四捨五入加 500,以此類推。
int 範圍(±21 億),大數運算請用 long 或分步驟除法。CLDC 1.1 已內建 float/double 與 Math 三角函數。現代專案建議直接要求 CLDC 1.1,僅在必須支援極舊機型時使用本技巧或引入 MathFP、JMFP 等定點數庫。