我正在使用Java构建一个Web应用程序来进行数学运算并向用户显示步骤.当使用小数进行基本算术时,我经常会得到准确输出的混乱.
这是我的问题:
double a = 0.15;
double b = 0.01;
System.out.println(a - b);
// outputs 0.13999999999999999
float a = 0.15;
float b = 0.01;
System.out.println(a - b);
// outputs 0.14
float a = 0.16f;
float b = 0.01f;
System.out.println(a - b);
// outputs 0.14999999
double a = 0.16;
double b = 0.01;
System.out.println(a - b);
// outputs 0.15
Run Code Online (Sandbox Code Playgroud)
两者对complete准确性都不可靠.是否有一个更精确的数字类,或者我应该将值四舍五入?