提问_: JAVA中约等于怎么表示?? 即判断2个double类型数值近似相等 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一般double类型的有效位在小数点后6~7位!要是像果子说的“是 3.14 与 3.15 呢,还是 3.141 与 3.142,还是 3.1415 与 3.1416 相等呢?”应该可以比较的,但是若是后面保留几位不确定,比较结果就难预料了,那你可以按楼上的说法“转为固定长度字符串”根据字符串来比较就可以了 double a = ...;double b = ...;double eps = 1E-13;if ((a - b) / a <= eps) { System.out.println("a equals b");} <0.5 floor >0.5 ceil 也算是四舍五入吧 Double类的equals方法本身就是依赖于精度近似的. 定一个epsilon。在这个epsilon前后范围内的都是约等于,超出这个范围的就认为是不相等。 可以这样:double d1;double d2;double d3 = d1 - d2;//精确到三位小数if(d3 <= 0.001){..........} absolute it...這個方法很基本,以前c中判斷兩個實數是否相等也是用這個方法 double d1; double d2; double d3;if(d1>=d2) d3 = d1 - d2; else d3 = d2 - d1; //精确到三位小数 if(d3 <= 0.001) { .......... } double d1; double d2; double d3 = d1 - d2; if(Math.abs(d3)<= 0.001) //具体精确到多少,看你个人而定{ .......... } 可以比较两个值的差的绝对值,并把这个结果和一个较小的数比较(根据你需要的的精度设置这个较小的数)例如:double num1,num2; num3 = num1 - num2; num = Math.abs(num3);//求绝对值 ~~~ Math.abs(num3) < 0.01 // 0.01就是精确到小数点后两位,你可以根据需要用更高的精度 异常问题 求一个从不同集合中组合数据的算法? CipherInputStream转换成FileInputStream java print service 问题 jdk 急啊 在java中如何把提交的SQL的结果显示在window上 怎样访问父类的父类成员?super.super为什么不允许? 如何配置jdbc 怎样接受 SQL 返回参数? 求高手看一道java问题,急! 向高手求教:在java程序中如何使用外部命令(如java命令)执行已编译好了的java程序,并且希望能够输入数据和输出数据
要是像果子说的
“是 3.14 与 3.15 呢,还是 3.141 与 3.142,还是 3.1415 与 3.1416 相等呢?”
应该可以比较的,
但是若是后面保留几位不确定,比较结果就难预料了,
那你可以按楼上的说法“转为固定长度字符串”
根据字符串来比较就可以了
double b = ...;
double eps = 1E-13;if ((a - b) / a <= eps) {
System.out.println("a equals b");
}
在这个epsilon前后范围内的都是约等于,超出这个范围的就认为是不相等。
double d1;
double d2;
double d3 = d1 - d2;
//精确到三位小数
if(d3 <= 0.001)
{
..........
}
這個方法很基本,以前c中判斷兩個實數是否相等也是用這個方法
double d2;
double d3;
if(d1>=d2)
d3 = d1 - d2;
else
d3 = d2 - d1;
//精确到三位小数
if(d3 <= 0.001)
{
..........
}
double d2;
double d3 = d1 - d2;
if(Math.abs(d3)<= 0.001) //具体精确到多少,看你个人而定
{
..........
}
例如:
double num1,num2;
num3 = num1 - num2;
num = Math.abs(num3);//求绝对值
~~~
Math.abs(num3) < 0.01 // 0.01就是精确到小数点后两位,你可以根据需要用更高的精度