import java.math.BigDecimal;

class tall {
public static void main(String[] args) {
BigDecimal iam = new BigDecimal("167.2");
BigDecimal youre;
System.out.println("I am " + iam + " cm tall.");
//I am really 165cm.But,health center said 167.
System.out.print("In inch,");
iam = iam.multiply(new BigDecimal("2.54"));

youre = iam.subtract(iam.setScale(0, BigDecimal.ROUND_DOWN));
iam = iam.subtract(youre);
if (youre.compareTo(new BigDecimal("0.5")) > 0) {
iam = iam.add(new BigDecimal(1));
}
System.out.println("I am " + iam + " inch tall.");
System.out.print("But if I am " + iam + " inch tall,");
iam = iam.multiply(new BigDecimal("0.393700787"));

youre = iam.subtract(iam.setScale(0, BigDecimal.ROUND_DOWN));
iam = iam.subtract(youre);
if (youre.compareTo(new BigDecimal("0.5")) > 0) {
iam = iam.add(new BigDecimal(1));
}
System.out.println("I am " + iam + " cm tall.");
youre = new BigDecimal("167.2").subtract(iam);
System.out.println("Then, I have become " + youre + "cm smaller.");
}
}
有理数で話をするかぎりは BigDecimal 使えばいい。