独自のceil
関数を作成し、それをターゲット デバイスの出力コードに含めることができます。C コードを生成していると仮定すると、関数は次のようになります。
int ceil (double number) {
if (number == 0)
return 0;
if (number > 0) {
if (number - (int) number > 0)
return (int) number + 1;
else
return (int) number;
}
else {
if (number - (int) number < 0)
return (int) number - 1;
else
return (int) number;
}
}
次のようなヘッダー ファイルのプロトタイプを使用します。
int ceil (double);
これで、C コードを呼び出すことができintegerValuedNumber = ceil(doubleValuedNumber)
、動作するはずです。Cファイルのマクロでこれを行うこともできます(任天堂の回答を参照)。
編集: C の適切な型キャスト構文を使用するようにコードを修正しました。基本的に、(int) number
構文で行っていることは、二重値のnumber
変数を取得し、それを整数にすることです。C のデータ型の詳細については、こちらを参照してください。詳細については、Google の「型キャスト C」または「データ型 C」を参照してください。
また、追加の括弧が必要になる場合もreturn ((int) number) + 1;
あります。私は C プログラミングに少し慣れていませんが、うまくいけば、これで実行可能な解決策に進むことができます。
編集 2:自己定義ceil
関数の戻りデータ型を修正しました。int
これが、または多分を返すようにしたいでしょうlong
。繰り返しになりますが、アプリケーションに適したデータ型がわからない場合は、C のデータ型に関するドキュメントを確認してください。適用する値がceil
それほど大きくない場合 (たとえば、+/- 2^15 未満)int
は、おそらく問題ありません。