Java 比较两个数字
我有一个节目:Java 比较两个数字,java,double,Java,Double,我有一个节目: double stockWeight = 1; if(data[0] > 9 ) stockWeight = 1000*R(data[0]/10); double compare = data[0]*100-stockWeight; System.out.println(compare); if(compare > 300.0 && compare <=600.0)
double stockWeight = 1;
if(data[0] > 9 )
stockWeight = 1000*R(data[0]/10);
double compare = data[0]*100-stockWeight;
System.out.println(compare);
if(compare > 300.0 && compare <=600.0)
stockWeight += 300;
else if(compare > 600.0 && compare <= 900.0)
stockWeight += 600;
else if(compare > 900.0);
stockWeight += 900;
System.out.println(stockWeight);
///////////////////////////////////
private int R(double D){
int howBIG = 1;
if (D >= 100){howBIG = 10;}
else if(D >= 1000){howBIG = 100;}
DecimalFormat F = new DecimalFormat("#");
return Integer.valueOf(F.format(D/howBIG))*howBIG;
}
这里的数字都是双精度的<代码>数据[0]=11.26
为什么我的电脑认为126.0大于900.0??
R方法基本上是10(100)的div函数,如果大于100(1000),则给出整数您可能会看到令人困惑的结果,因为您上一个else语句中出现了分号:
else if(compare > 900.0);
因此,此行不依赖于else
子句,将始终执行:
stockWeight += 900;
基本上,您总是在最后一次打印语句之前将900添加到股票重量中,无论是否
compare>900.0
您可能会看到令人困惑的结果,因为您的最后一次else语句中出现了分号:
else if(compare > 900.0);
因此,此行不依赖于else
子句,将始终执行:
stockWeight += 900;
基本上,您总是在最后一个打印语句之前将900添加到stockWeight,无论
compare>900.0
您的代码片段是否包含一些独立语句,然后是一个函数。这一切是如何运行的?您的代码只有一行println()
,但您的输出似乎有两行独立的行…为什么要使用bleedin十进制格式来舍入双精度?我建议调查一下。代码上的缩进太可怕了。混乱和矛盾。p、 如果(D>=100){howBIG=10;}否则如果(D>=1000){howBIG=100;},else子句将永远不会执行:)您的代码段包括一些独立语句,然后是一个函数。这一切是如何运行的?您的代码只有一行println()
,但您的输出似乎有两行独立的行…为什么要使用bleedin十进制格式来舍入双精度?我建议调查一下。代码上的缩进太可怕了。混乱和矛盾。p、 如果(D>=100){howBIG=10;}else如果(D>=1000){howBIG=100;},则永远不会执行else子句:)