私は次のことをしています
float years = (1/31536000) * 883102.00;
そして私は年を得る= 0000000
実際の答えは 0.0.28 です
何がうまくいかないのかについて何か提案はありますか?
私は次のことをしています
float years = (1/31536000) * 883102.00;
そして私は年を得る= 0000000
実際の答えは 0.0.28 です
何がうまくいかないのかについて何か提案はありますか?
やるだけ
float years = 883102.00/31536000;
これにより、計算が節約されます。あなたは何かで1をダイビングしてから掛けているからです。または、1 を 1.00 に設定します。
代わりに行う必要があります
float years = (1.0/31536000.0) * 883102.00;
また
float years = (1.0/31536000) * 883102.00;
同様に機能する可能性があります。最初の数字は整数として扱われます。
883102.0 / 31536000
あなたが望むことだけをします。
整数除算のため
(1/31536000)
小数桁は切り捨てられ、結果は「ゼロ」になります。ドットを追加する必要があります:
(1.0/31536000.0) or (1./31536000.)
(1/31536000) は、任意の数を掛けると 0 になる 0 を生成します。分子または分母の少なくとも 1 つを浮動小数点数 (1.0 または 31536000.0 など) にします。
その最初の項は としてキャストされるためint
、 に丸められ0
ます。これを試して:
float years = (1.00 / 31536000.00) * 883102.00
1 は整数です。次に、コンパイラは、int での作業に関心があると想定し、1/3153600 が 0 になります。1 に .0 を追加するだけで、計算が機能するはずです。
float years = (1.0/31536000) * 883102.00;