2011-09-03 9 views
0

F#でキューブルートを取得しようとしましたが、しかし、ここに私の問題があります。F#でキューブルートを取得する方法

let x5 = ((float 64) ** (1.0/3.0));; 
val x5 : float = 4.0 

int x5;; //expected 4 
val it : int = 3 

結果は3

何が問題になっています、4ではないでしょうか?

+1

浮動小数点問題のようです。 'int(round x5)' = 4 – Daniel

+0

はい。そのとおり。色々ありがとう。 – dagelee

答えて

1

あなたが間違った変数を見ているようです。

が、私はそれを自分でチェックし、例はここにある:(。ideone無料オンラインコンパイル/実行サービスである)

http://ideone.com/kn9jd

+0

問題は 'int x5'です – Daniel

+0

私はF#の専門家ではなく、元の投稿のどの行が実際にコードであると思われていて、フォーマットの悪い問題の彼の説明の一部であるはずです。 –

3

何も間違っていない、事はあることの価値あなたのx5はより少し小さいです。 fsiの使用量を明示的に表示することができます。

let x5 = ((float 64) ** (1.0/3.0)) 
let err = 4.0 - x5;; 

val x5 : float = 4.0 
val err : float = 4.440892099e-16 
関連する問題