重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

C#を使っています。
(double型 / double型) ^ (1 / 3)
このような計算をしたいのですが、
「エラー:演算子 '^' を 'double' と 'int' 型のオペランドに適用することはできません。」と、表示されてしまいます。
三分の一乗という計算をすることは不可能なのでしょうか。
よろしくお願いします。

A 回答 (6件)

C#では ^演算子=XOR演算 です


(簡単な説明:2進数で左右の各位を比べて両方1なら0にする演算子)
11111000(10進数で248)^00111111(63)=11000111(199)

C#で冪乗をする場合は、Tacosanさんの回答にもあるように
Math.Pow関数を使います。
例:
double i = Math.Pow(10.0 , (1.0/3.0));//10^(1/3)
i=2.15443469003188
    • good
    • 0
この回答へのお礼

ありがとうございます。大変参考になりました。
できれば皆さんに差し上げたいのですが、とくにわかりやすかったお二人にポイントを差し上げます。

お礼日時:2009/11/06 17:49

べき乗に^演算子が使えるのはVisual Basic系です。


C#のべき乗計算は、Math.Pow()を使う必要があります。

質問のエラーは、
C言語の^演算子(排他的OR)は、double型に適用できないという意味です。

(参考)
http://www.atmarkit.co.jp/fdotnet/dotnettips/290 …
    • good
    • 0
この回答へのお礼

ありがとうございます。大変参考になりました。

お礼日時:2009/11/06 17:49

右辺をdoubleにするのは (1.0/3.0)でも(1.0/3)でも(1/3.0)でもいいと思います。

(演算子「/」は左右のどちらかがdoubleならdoubleを出力すると思います。)

でもその前にプログラミングの基礎を思い出してください。
(1/3)は0.3333...ではありませんよ。0です。(int)/(int)の結果はintです。(double)(1 / 3)と(1.0/3.0)はどっちも結果はdoubleですが内容は違います。

その前に私はC#はあまり経験ないけど、演算子「^」はべき乗ですか?CやC++ではまったく別の演算子(排他的論理和)なんだけどC#も同じではないのですか?
    • good
    • 0
この回答へのお礼

ありがとうございます。大変参考になりました。
できれば皆さんに差し上げたいのですが、とくにわかりやすかったお二人にポイントを差し上げます。

お礼日時:2009/11/06 17:49

ああ, もちろん #1 も必要. ただしキャストせずに 1.0/3.0 の方が普通.

    • good
    • 0
この回答へのお礼

ありがとうございます。大変参考になりました。

お礼日時:2009/11/06 17:50

Math.Pow.



参考URL:http://sonic64.com/2005-12-08.html
    • good
    • 0
この回答へのお礼

ありがとうございます。大変参考になりました。

お礼日時:2009/11/06 17:45

おそらくですが


(1 / 3)
の1と3はint型とコンパイラは認識していると思います。
試しにdouble型にキャストしてみては?
    • good
    • 0
この回答へのお礼

ありがとうございます。大変参考になりました。

お礼日時:2009/11/06 17:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!