0

基本的な疑問があります。変換する必要float minutes =( (10.09/60 ) % 60); がありますが、エラーはinvalid to binary expression(double to double)です。この計算を簡単にするにはどうすればよいですか。最初 float minutes =( (10.09/60 ) に、分をNSIntergerに変換して、モジュール(%)の操作を解決しようとしています。

しかし、どうすればこれを行うことができますか...またはこの計算を取得するための他の解決策を提案します。

float minutes =( (10.09/60 ) % 60);

4

3 に答える 3

2

を使用する%には、を使用する必要がありますint。だから:(int)(10.09)%60動作するはずです。

于 2012-12-20T12:09:52.103 に答える
2

%演算子は、浮動小数点値では機能しません。必要なものを計算するには、関数を使用する必要があります。これがどのように見えるかの基本的な擬似コードです:

B%A = B-(floor(B / A)* A)

math.hまたはtgmath.hにこれを行うライブラリ関数もあります

また、からfmod()またはfmodf()を使用することもできます。

于 2012-12-20T12:14:57.640 に答える
1

要件に応じて、以下の操作を使用できます

float myFloat = 3.333

 //for nearest small integer:
int result = (int)ceilf(myFloat );

 //for nearest big integer:
int result = (int)roundf(myFloat );

 //for nearest integer:
int result = (int)floor(myFloat);

//整数値の場合intresult=(int)(myFloat);

于 2012-12-20T12:10:10.003 に答える