0

私は次のことをしています

float years = (1/31536000) * 883102.00;

そして私は年を得る= 0000000

実際の答えは 0.0.28 です

何がうまくいかないのかについて何か提案はありますか?

4

7 に答える 7

3

やるだけ

float years = 883102.00/31536000;

これにより、計算が節約されます。あなたは何かで1をダイビングしてから掛けているからです。または、1 を 1.00 に設定します。

于 2013-08-07T16:36:12.033 に答える
3

代わりに行う必要があります

float years = (1.0/31536000.0) * 883102.00;

また

float years = (1.0/31536000) * 883102.00;

同様に機能する可能性があります。最初の数字は整数として扱われます。

于 2013-08-07T16:33:28.187 に答える
1

883102.0 / 31536000あなたが望むことだけをします。

于 2013-08-07T16:35:45.537 に答える
1

整数除算のため

(1/31536000)

小数桁は切り捨てられ、結果は「ゼロ」になります。ドットを追加する必要があります:

(1.0/31536000.0) or (1./31536000.)
于 2013-08-07T16:36:00.070 に答える
1

(1/31536000) は、任意の数を掛けると 0 になる 0 を生成します。分子または分母の少なくとも 1 つを浮動小数点数 (1.0 または 31536000.0 など) にします。

于 2013-08-07T16:34:07.670 に答える
1

その最初の項は としてキャストされるためint、 に丸められ0ます。これを試して:

float years = (1.00 / 31536000.00) * 883102.00
于 2013-08-07T16:33:58.367 に答える
1

1 は整数です。次に、コンパイラは、int での作業に関心があると想定し、1/3153600 が 0 になります。1 に .0 を追加するだけで、計算が機能するはずです。

float years = (1.0/31536000) * 883102.00;
于 2013-08-07T16:33:18.057 に答える