日期:2014-05-20  浏览次数:20706 次

java中比较2个数的大小.例如(20120709060000和20120709060100)
6736,20120709060000,1582.4,1583.0,1581.0,1581.0
6737,20120709060100,1581.0,1581.7,1580.4,1580.4
6738,20120709060200,1580.4,1580.7,1579.3,1580.4
6739,20120709060300,1579.7,1580.5,1579.5,1580.2
这个是txt文档,第二列是我要比较的值.假设我 1.定义time等于第二列的所有值,2.当time=20120709060100,获取对应的第三列的值;3.获取time>20120709060100的所有第三列值.    我不知道给time赋 什么类型的,才保证time=20120709060100时,获得的第三列的值是唯一的.用过 long,double类型,获取的值都不是唯一的.求高手帮忙.
------最佳解决方案--------------------
String time =star.nextToken();
...
String time1="20120709080000l";

 //String price;
 if(time1.equal(time)){

以下略
------其他解决方案--------------------
既然是txt,可以直接使用String类型,其次可以转化为日期类型,
如果一定要用数字类型,可以尝试BigDecimal,BigDecimal可以用来对超过16位有效位的数进行精确的运算
------其他解决方案--------------------
1、如果你的数据来源第三列不是唯一的,你怎么唯一?所以这里的唯一不为你所控!
2、看你提供的数据案例,第二列就用String就可以了
------其他解决方案--------------------
time 就用 String进行比较,很好用。
------其他解决方案--------------------
已经提示你"1578.7"的NumberFormatException(数值转换错误),这个你要转换要用Double,Float或者BigDecimal,而不能用long
------其他解决方案--------------------
try{
bufferedReader = new BufferedReader(new FileReader("D:\\20120709.txt"));
String l;
while ((l = bufferedReader.readLine()) != null) {
//opeartion l 

StringTokenizer star = new  StringTokenizer(l,",");
int id = Integer.parseInt(star.nextToken());
long  time =Long.parseLong(star.nextToken());
//String time=star.nextToken();
String start = star.nextToken();
String high = star.nextToken();
String low = star.nextToken();
String end = star.nextToken();
long time1=20120709080000l;

//String price;
if(time==time1){
buy=start.toString();
//price=buy;System.out.println(buy);
//
}//
else if(time>time1 ){
String  set=start.toString();
long buyNum = Long.valueOf(buy).longValue();
long setNum = Long.valueOf(set).longValue();
 if((buyNum-setNum )==2){
 System.out.println("OK!");
 }
 else if((setNum - buyNum)==4){
 System.out.println("no!");
 }
}
我是这样写的,报错了(Exception in thread "main" java.lang.NumberFormatException: For input string: "1578.7"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Long.parseLong(Long.java:441)).
------其他解决方案--------------------
那该怎么改才好呢?刚刚接触编程,有点菜.可以指导下么?
------其他解决方案--------------------
补充一句,比较大小直接比较就行,跟数字一样
------其他解决方案--------------------
String直接就能比较