import java.math.BigDecimal;
class ProcessPositionTest
{
/**
* 位数处理
* @param val 被处理数
* @param processKind 处理区分
* @param positionKind 位数区分
* @return BigDecimal
*/
private static BigDecimal processPosition(BigDecimal val,
String processKind,
int positionKind ) {
val = val.divide(new BigDecimal(Math.pow(10, positionKind)), BigDecimal.ROUND_HALF_EVEN);
if ("0".equals(processKind)) {
val = val.setScale(0, BigDecimal.ROUND_DOWN);
} else if ("1".equals(processKind)) {
val = val.setScale(0, BigDecimal.ROUND_UP);
} else if ("2".equals(processKind)) {
val = val.setScale(0, BigDecimal.ROUND_HALF_EVEN);
}
val = val.multiply(new BigDecimal(Math.pow(10, positionKind)));
return val;
}
public static void main(String[] args)
{
BigDecimal d1 = new BigDecimal(21.12354);
System.out.println((RndPucTest.processPosition(d1, "2", -3)).doubleValue());
}
}