1

なぜこれを行うのですか:

printf("%d\n", pow(1,0)); /* outputs 0 */

を返します0か?私はそれが戻ってくると思っていました1

4

2 に答える 2

1

pow() は double を返すため、結果を int に型キャストする必要があります。

printf("%d\n",(int) pow(1,0));

これにより、目的の出力1が得られます

注:pow(a,b)a と b の両方があなたの場合と同じ場合、正しい結果が得られます。ただし、結果が最も近い整数に丸められるように、処理するときに結果を取得integersする必要があります。add 0.5fractions

printf("%d\n",(int) (pow(2.1,0.9)))// will return 1. 

printf("%d\n",(int) (pow(2.1,0.9)+0.5));//will return 2.

お役に立てば幸いです。

于 2015-06-05T15:07:51.277 に答える