通貨floatまたはdoubleを避けるため、精度を失います。推奨されるBigDecimalを
利用シナリオ
最近量が元ポイントから変換する必要があるので、ポイントのマイクロ文字の量を提供するために、単一のインターフェイスの下に統一する小さなプログラムの支払能力、
当初はフロートを使用して計算
パブリック 静的 ボイドメイン(文字列[]引数){ // 0.01元 文字列料= "0.01" 。 // 转为1分 int型の金=(int型)(Float.parseFloat(有料)* 100 ); System.out.println(金)。 }
0.01元は「9999999」をより多くするために、結果が9999998.72算出し、問題ありません
だから、代わりにBigDecimalを
パブリック 静的 ボイドメイン(文字列[]引数){ // 量単位員 文字列料= "9999999" ; BigDecimalをdecimal1 = 新しい新規のBigDecimal(有料) のBigDecimal decimal2 = 新しい新規のBigDecimal(100 ); // 量単位に分割 int型マネー= decimal1.multiply(decimal2).intValue(); System.out.printlnは(マネー); // 9999999 }