独自の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は、おそらく問題ありません。