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;

我想做的是把结果变成整数和八分之一。我尝试过的一切都很好,直到我得到一个向上而不是向下取整的结果(然后给 splitdeci 一个负值)。

我试过将 split 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 回答