なぜこれを行うのですか:
printf("%d\n", pow(1,0)); /* outputs 0 */
を返します0
か?私はそれが戻ってくると思っていました1
。
pow() は double を返すため、結果を int に型キャストする必要があります。
printf("%d\n",(int) pow(1,0));
これにより、目的の出力1が得られます
注:pow(a,b)
a と b の両方があなたの場合と同じ場合、正しい結果が得られます。ただし、結果が最も近い整数に丸められるように、処理するときに結果を取得integers
する必要があります。add 0.5
fractions
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.
お役に立てば幸いです。