这个死记硬背的规律我不擅长
import java.math.BigDecimal;
public class Test {
public static void main(String[] args) {
double d = 0.1D;
float f = 0.1F;
Double aDouble = Double.valueOf(d);
Float aFloat = Float.valueOf(f);
BigDecimal dbigDecimal = new BigDecimal(aDouble.toString());
BigDecimal dbigDecimal1 = new BigDecimal(d);
BigDecimal dbigDecimal2 = new BigDecimal(aDouble);
BigDecimal dbigDecimal3 = BigDecimal.valueOf(d);
BigDecimal dbigDecimal4 = BigDecimal.valueOf(aDouble);
BigDecimal fbigDecimal = new BigDecimal(aFloat.toString());
BigDecimal fbigDecimal1 = new BigDecimal(f);
BigDecimal fbigDecimal2 = new BigDecimal(aFloat);
BigDecimal fbigDecimal3 = BigDecimal.valueOf(f);
BigDecimal fbigDecimal4 = BigDecimal.valueOf(aFloat);
BigDecimal dbigDecimal = new BigDecimal(aDouble.toString());
BigDecimal dbigDecimal1 = new BigDecimal(d);
BigDecimal dbigDecimal2 = new BigDecimal(aDouble);
BigDecimal dbigDecimal3 = BigDecimal.valueOf(d);
BigDecimal dbigDecimal4 = BigDecimal.valueOf(aDouble);
BigDecimal fbigDecimal = new BigDecimal(aFloat.toString());
BigDecimal fbigDecimal1 = new BigDecimal(f);
BigDecimal fbigDecimal2 = new BigDecimal(aFloat);
BigDecimal fbigDecimal3 = BigDecimal.valueOf(f);
BigDecimal fbigDecimal4 = BigDecimal.valueOf(aFloat);
System.out.println("----");
System.out.println("new BigDecimal(aDouble.toString()) :\n"+dbigDecimal);
System.out.println("----");
System.out.println("new BigDecimal(d) : \n"+dbigDecimal1);
System.out.println("----");
System.out.println("new BigDecimal(aDouble) :");
System.out.println(dbigDecimal2);
System.out.println("----");
System.out.println("BigDecimal.valueOf(d) : ");
System.out.println(dbigDecimal3);
System.out.println("----");
System.out.println("BigDecimal.valueOf(aDouble) :");
System.out.println(dbigDecimal4);
System.out.println("----");
System.out.println("new BigDecimal(aFloat.toString())");
System.out.println(fbigDecimal);
System.out.println("----");
System.out.println("new BigDecimal(f)");
System.out.println(fbigDecimal1);
System.out.println("----");
System.out.println("new BigDecimal(aFloat)");
System.out.println(fbigDecimal2);
System.out.println("----");
System.out.println("BigDecimal.valueOf(f)");
System.out.println(fbigDecimal3);
System.out.println("----");
System.out.println("BigDecimal.valueOf(aFloat):" + (fbigDecimal4.compareTo(BigDecimal.valueOf(0.1D)) == 0));
System.out.println(fbigDecimal4);
}
}
公布答案
0.1
0.1000000000000000055511151231257827021181583404541015625
0.1000000000000000055511151231257827021181583404541015625
0.1
0.1
0.1
0.100000001490116119384765625
0.100000001490116119384765625
0.10000000149011612
0.10000000149011612