私はいくつかのフロートローカル変数を必要とするループのためのいくつか持っている:私はfloatにint型から私を変えるような価格と重量はローカル変数としてループのために埋め込むことにしたい浮動小数点数が整数値のみを含む場合、浮動小数点==を安全に比較することは保証できますか?
float price=0;
float weight=0;
int[] amountArray={2,5,3};
for(int i=0;i<=10;i++){
int amount=0;
if(i<amountArray.length){
amount=amountArray[i];
}
//other codes for price and weight
}
:
int[] amountArray={2,5,3};
for(float i=0,price=0,weight=0;i<=10;i++){
int amount=0;
if(i<amountArray.length){
amount=amountArray[(int)i];
}
//other codes for price and weight
}
を
変更されたバージョンは元のバージョンと同じですか?私はIEEE 754標準で正しく表現できる整数値しか含んでいないので、ハードウェア(特にアンドロイド)に依存しないので、浮動小数点を<、< =、==、intにキャストしてみてくださいこの場合の問題は、私は正しいですか?
精度の問題は、整数または整数ではなく、整数がどれほど大きくなるかにも関係します。 –
* "ローカル変数としてforループに価格と重量を埋め込んでおきたい" *このスタイルは実際には悪いです。コンパクトコードは、密でない場合にのみ有効です。ゴミを1行に絞るだけで、読みにくくなります。配列にアクセスするためにキャストする必要がある部分はひどいです。本当に、それを最初のやり方でやってください。 – Radiodef
「価格」は、ドルではなくセントで計算することを検討してください。そうすれば、浮動小数点はまったくありません。次に、最終価格を印刷する前に "100で割り"することができます。 – selbie