计算double的问题

为啥是0.399999啊
public class 13 {
public static void main(String[] args) {
System.out.println();
//浮点数精度
System.out.println("float类型精度:"+3.14159265358F);
System.out.println("doule类型精度:"+3.14159265358D);
//浮点数计算结果与浮点数常量进行对比
double x=3;
double y=2.6
System.out.println(x-y);

}

}

浮点数有精度误差的

所以才有浮点精度这一说
比如1/3这个数字,你用十进制表示就是0.33333333
但假如你用三进制,那就是0.1了,有限小数,后面没有那一串

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^