2

これを小数に分割することはできません。値 0 に丸められます。

    private void button24_Click(object sender, EventArgs e)
    {
        double x = 0;

        x = 1 / 2;

        ans.Text = x.ToString();
    }

デバッグすると、x はテキストボックス 'ans' に送信される前にゼロになります。

私は試しました..文字列変数はまだゼロです..

double x = 1/5;

string displayX = x.ToString("0.0000");
4

3 に答える 3

7

それは整数除算であり、それらは期待される出力です。

double x = 1.0 / 5;  // this will not perform integer division
double x = 1/5;  // this does  (1/5 = 0).  
double x = 1D / 5; // this will not because 1 is treated as a double
于 2012-05-04T19:35:42.987 に答える
2

次のいずれかを実行できます。

double x = 1;
double y = 1.5;

double ans = x / y;
于 2012-05-04T19:38:33.627 に答える
1

double x = 1/5 を double x = 1.0/5 に置き換えると、修正されるはずです。除算する数値はどちらも整数であるため、倍精度ではなく整数として処理されます。論理的に考えると、それはある程度理にかなっています-それらの数値がどのような形式でも除算を行い、それを変数に保存します。変数の型は、実際の方程式には重要ではありません。

(すでに他の回答があることは承知していますが、問題が存在する理由を理解するのに役立つことを願っています。)

于 2012-05-04T19:38:24.250 に答える