double d = 0.0001;
String s1 = String.valueOf(d);//结果为"1.0E-4"
String s2 = new BigDecimal(d).toString();//结果为"1.00000000000xxxxxxxxxxxxx"
....
不能使用格式化方法,因为不能确定double类型的精度.
我试过很多方法都不能得到正确的结果"0.0001".
谁能给个正确的方法呀?
String s1 = String.valueOf(d);//结果为"1.0E-4"
String s2 = new BigDecimal(d).toString();//结果为"1.00000000000xxxxxxxxxxxxx"
....
不能使用格式化方法,因为不能确定double类型的精度.
我试过很多方法都不能得到正确的结果"0.0001".
谁能给个正确的方法呀?
ici
0.1-0.9 这9个值只有0.5是精确表示的,其他的都是近似值
0.1无论怎么转换都能得到正确的结果;而0.0001为什么就没有办法得到正确的结果呢?
如果不能得到正确结果,那java的double类型还能用吗?
double d = 0.0001d;
DecimalFormat format = new DecimalFormat("###,###.#######");
value = format.format(d);
System.out.println(value);结果输出:
0.0001
DecimalFormat dft = new DecimalFormat("xxx,xxx.xxxxxxx");
value = dft.format(d);
System.out.println(value);