double 型の変数を int 型にキャストするには?
BREW 2.1 には、double 型の値を int 型の値に変換する関数はありません。
以下の手順に従って double 型の値を int 型の値に変換します。 これは、Qualcomm 社が推奨している方法です。
- FLOATTOWSTR を使用して double 型の数値をワイド文字列に変換します。
- WSTRTOSTR を使用してワイド文字列を char 文字列に変換します。
- ATOI を使用して char 文字列を int 型の数値に変換します。
※ BREW 2.1 では FLOATTOWSTR に不具合があり、整数部が 20 桁を超えるとメモリを破壊する恐れがあります。
SophiaFramework では Float32, Float64 型を使うことで通常の float, double と同じように浮動小数点を扱うことができます。
【 コード例 】
[ BREW API のみを使用したコード ]
// 浮動小数点型の値を整数型の値に変換します。
#define SIZE 64
double doubleVal = -1.234;
int intVal = 0;
char charStr[SIZE] = {0};
AECHAR aecharStr[SIZE] = {0};
// double 型の数値をワイド文字列に変換します。
boolean b = FLOATTOWSTR(doubleVal, aecharStr, SIZE);
// ワイド文字列を char 文字列に変換します。
WSTRTOSTR(aecharStr, charStr, SIZE);
// char 文字列を int 型の数値に変換します。
intVal = ATOI(charStr);
[SophiaFramework を使用したコード]
// 浮動小数点型の値を整数型の値に変換します。 Float64 doubleVal(-1.234); SInt32 intVal = (SInt32)doubleVal;









