- PR -

C#で小数を累乗したい

投稿者投稿内容
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-10-06 18:41
本当にそういうコードを書いているなら、C# だと、コンパイル通らないんじゃないの?
(縮小方向の自動変換はしてくれなかったはず)
_________________
NAO
ぬし
会議室デビュー日: 2001/10/24
投稿数: 1256
お住まい・勤務地: 神奈川のはずれから東京の下町
投稿日時: 2006-10-06 18:57
そもそも。

引用:

int i = System.Math.Pow(0.8, count)



これはコンパイル時に明示的にキャストしてないから通らない。

引用:

int i = (int)System.Math.Pow(0.8, count)



と書けば通りますが。

で、キャストしたとしても

count = 2 だったとして、

0.8*0.8=0.64をキャストするんだから

結果は 0

count = -1 だったとして

つまり0 .8 / 1 だから 1.25

それをキャストするんだから

結果は1

じゃんぬさんが書いている様に

引用:

double d = System.Math.Pow(0.8, 2);



と書かなければ望む結果は出てこないはずです。

>Jittaさんへ
自動変換してくれる方向でも
間違いを防ぐためにキャストする時は意図的に
書きますね。 

[ メッセージ編集済み 編集者: NAO 編集日時 2006-10-06 19:02 ]

スキルアップ/キャリアアップ(JOB@IT)