2015-03-19 72 views
1

我必須截斷從數據庫中最多兩個小數部分獲得的值,並把在我在下面的方式函數來截斷結果集的值在Java中

while(rs.next()) 
      { 
       Comp_Mps_vs ref_drop=new Comp_Mps_vs(); 

       ref_drop.setLogtime(rs.getString(1)); 
       ref_drop.setBeam_current(rs.getString(2)); 
       ref_drop.setBeam_energy(rs.getString(3)); 
       ref_drop.setP99_readback(rs.getString(4)); 
       ref_drop.setP99_setvalue(rs.getString(5)); 
       ref_drop.setP99_vmeset(rs.getString(6)); 
       ref_jsp.add(ref_drop); 
      } 

增加從結果集到列表中的值中的結果值其中ref_jsp是

List<Comp_Mps_vs> ref_jsp=new ArrayList<Comp_Mps_vs>(); 

現在我wnat whcich四捨五入的值高達兩個浮動分和ref_drop.setP99_vmeset(rs.getString(index_no))傳遞這些索引值的方法;代碼。

如何在java中實現這個?

+0

你要截斷的'String'或在值值?你需要整理/下降的價值?你能否提供一些期望截斷的例子? – JohnnyAW 2015-03-19 13:21:46

+0

@JohnnyAW如果我想截斷字符串,怎麼做??例如123.4567889被截斷爲123.45。 – 2015-03-20 04:26:53

回答

0

你的意思是這樣的數字格式嗎?

Double doubleValue = Double.valueOf(rs.getString(6)); 
String formattedValue = String.format("%.2f", doubleValue); 
ref_drop.setP99_vmeset(formattedValue); 

,所以如果你從數據庫中得到11.1111字符串,它會被格式化爲11.11

+0

我有162列,那麼我必須寫這些3行162次。是否有其他任何替代方案? – 2015-03-20 04:15:30

+0

如何應用for循環,使得對於每個下一個rs.getString(i),循環遞增1. for循環可應用的是for(int i = 1; i <= 162; i ++) \t \t \t \t \t { \t \t \t \t \t雙人的doubleValue = Double.valueOf(rs.getString(I)); \t \t \t \t \t String formattedValue = String.format(「%。2f」,doubleValue); – 2015-03-20 04:19:03

+0

反正你會在某些時候有162行,因爲你必須設置你的屬性 – 2015-03-20 05:09:28

0

爲了圍捕的價值,首先你需要將其轉換爲數字。爲此,您可以使用

double d = Double.parseDouble(rs.getString(6)) 

關於此的更多詳細信息,請參閱here

然後,你需要創建一個格式化字符串:

String s = new DecimalFormat(#.##").format(d); 

之後,你可以給它分配:

ref_drop.setP99_vmeset(s); 
+0

在這也是我同樣的問題,如果我有這樣的162設置方法,然後162這三個線與不同的setter方法剃鬚寫入。如何在循環中使用,以便每一個下一個rs.getString( ),一個遞增的值可以作爲整數加上。 – 2015-03-20 04:48:18