3

小数点以下の値にもかかわらず、数値を切り捨てようとしています。次に、完全な数値から丸められた数値を減算して、小数を新しい値として分離することが目的です。

DecimalFormat decfom = new DecimalFormat("#.##");
String splitter1 = decfom.format(newdecihole);

DecimalFormat df = new DecimalFormat("##."); 
String splitter2 = df.format(newdecihole);
double split1 = Double.parseDouble(splitter1);
double split2 = Double.parseDouble(splitter2);

double splitdeci = split1 - split2;
double finfracti = splitdeci * 8;

私がやろうとしているのは、結果を整数と8分の1に変換することです。iveが試したものはすべて、結果が切り捨てではなく切り上げられるまで正常に機能します(これにより、splitdeciに負の値が与えられます)。

スプリット2をintにしようとしましたが、切り上げてしまいます

4

2 に答える 2

6

何方をお探しですか

Math.floor

http://docs.oracle.com/javase/6/docs/api/java/lang/Math.html#floor(double

于 2012-05-05T11:54:05.433 に答える
0
double splitDecimal = split1 - Math.floor(split2);
int eightFraction = Math.round(splitDecimal) * 8;
于 2012-05-05T11:55:15.963 に答える