三个"数字":a = "1.23";
b = "1.23.21";
c = "23"; 比较结果应该是:c>b>a,请问如何用java编程实现?
b = "1.23.21";
c = "23"; 比较结果应该是:c>b>a,请问如何用java编程实现?
解决方案 »
- 怎样判断一个方法是继承来的方法?
- Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
- java 打印的奇怪问题
- 有什么好的开源的画图表的程序???
- applet访问数据库 ---Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver")不能执行
- 舞伴问题
- 关于socket
- 问个很菜的问题!
- 我在Date类中看为何编译出错:java.util.date中无valueOf()方法?
- Java Swing如何实现图形的旋转、放大、缩小
- 问个关于DecimalFormat类的问题
- JAVA不定参数探秘(想了解内部原理的都可以进来看一下)
可以用java中的类将字符串直接转换成浮点数,然后进行比较
但是具体是什么类,我不太清楚
如果我说的不对,还望高手指教.
如果用c语言实现的话,就必须自己编函数,我的思路如下:
double changeDouble(char *ch)
{
double numInteger;
double numFloat;
numInteger = 0.0;
for ( ;*ch && *ch != '.';++ch)
numInteger = numInteger * 10 + *ch;
if (*ch) {
double base;
base = 1.0;
numFloat = 0.0;
for (++ch;*ch;++ch) {
base *= 0.1;
numFloat += base * (*ch);
}
return numInteger + numFloat;
}
return numInteger;
}
void compare(char *a,char *b,char *c)
{
double numA,numB,numC;
numA = changeDouble(a);
numB = changeDouble(b);
numC = changeDouble(c); if (numA > numB){
if (numB >numC)
printf("%lf>%lf>%lf\n",numA,mumB,numC);
else if (fabs(numA - numB) < 1e-6)
printf("%lf>%lf=%lf\n",numA,mumB,numC);
else if (numA > numC)
printf("%lf>%lf>%f\n",numA,mumC,numB);
else if (fabs(numA - numC) < 1e-6)
printf("%lf=%lf>%lf\n",numA,mumC,numB);
else
printf("%lf>%lf>%lf\n",numC,mumA,numB);
} else if (fabs(numA-numB) < 1e-6) {
if (numA > numC)
printf(("%lf=%lf>%lf\n",numA,mumB,numC);
else if (fabs(numA - numC) < 1e-6)
printf("%lf=%lf=%lf\n",numA,mumC,numC);
else
printf("%lf>%lf=%lf\n",numC,mumB,numA);
} else {
if (numA > numC)
printf("%lf>%lf>%lf\n",numB,mumA,numC);
else if (fabs(numA - numC) < 1e-6)
printf("%lf>%lf=%lf\n",numB,mumA,numC);
else if (numB > numC)
printf("%lf>%lf>%lf\n",numB,mumC,numA);
else if (fabs(numB - numC) < 1e-6)
printf("%lf=%lf>%f\n",numA,mumC,numB);
else
printf("%lf>%lf>%f\n",numC,mumB,numA);
}
}
public static boolean checkString(String a, String b) {
a = "0023.363.36";
b = "10.23";
String[] a_1 = a.split("\\.");
String[] b_1 = b.split("\\.");
int a_1_len = a_1.length;
int b_1_len = b_1.length;
int i = 0, j = 0;
try {
while (i < a_1_len && j < b_1_len) {
if (Integer.parseInt(a_1[i]) > Integer.parseInt(b_1[j])) {
System.out.println(a_1[i] + ">" + b_1[j]);
return true;
} else if (Integer.parseInt(a_1[i]) < Integer.parseInt(b_1[j])) {
System.out.println(a_1[i] + "<" + b_1[j]);
return false;
} else {
i++;
System.out.println("i++:" + i);
j++;
System.out.println("j++:" + j);
}
}
if (a_1_len > i) {
System.out.println(a_1_len + ">" + i);
return true;
}
if (b_1_len > j) {
System.out.println(b_1_len + ">" + j);
return false;
} } catch (Exception e) {
return false;
}
return false;
}