我想解決這個練習Problem 22只是爲了加強我的解決技巧。我已經編寫了答案。任務要求「所有y座標值的總和是多少? (以xxxxx.x格式輸入數字作爲小數(我不明白這是什麼意思))。我的答案是50616.0,但它是錯誤的。 我希望你能幫助我。我不知道我是否做錯了,或者我不明白xxxxx.x中的任務意味着什麼,我認爲它是十進制的,不是?中點總和問題。 22「 - 我沒有得到正確的答案,因爲我不明白什麼意思是」xxxxx.x「我認爲
這是我的代碼:
import java.io.*;
import java.math.BigDecimal;
public class Problema22 {
public static void main(String args[]) {
File archivo = null;
FileReader fr = null;
BufferedReader br = null;
try {
archivo = new File("C:\\plane22.txt");
fr = new FileReader(archivo);
br = new BufferedReader(fr);
String linea;
int index = 0;
int num = 0;
String num2 = "";
BigDecimal sol = BigDecimal.valueOf(0);
while ((linea = br.readLine()) != null) //System.out.println(linea);
{
//System.out.println(linea);
int line1 = linea.indexOf(",");
int line2 = linea.lastIndexOf(",");
int line3 = linea.indexOf("|");
String y1 = linea.substring(line1+1, line3);
String y2 = linea.substring(line2+1, linea.length());
long sumys = (Integer.parseInt(y1)+ Integer.parseInt(y2))/2;
sol = BigDecimal.valueOf(sumys).add(sol);
//System.out.println(sol);
}
System.out.println(sol);
//count((ArrayList<String>) arr);
} catch (Exception e) {
e.printStackTrace();
}
}
使用BigDecimal不會返回一個十進制的數字??我認爲digdecimal我會改變所有浮動,謝謝回答 – Yoan 2011-05-31 23:29:55
我改變所有浮動和我的答案是50638.5,其正確的感謝 – Yoan 2011-05-31 23:31:04
@Yoan,' BigDecimal''可以工作,如果你在每一步中都使用它,但其中一箇中間值被存儲在'long sumys'中。如果這是一個BigDecimal,並且該分區是用BigDecimal執行的,它應該完美地運行。 (儘管可能會慢一點。) – sarnold 2011-05-31 23:35:16