-2
我試着用read-double函數讀取double值,但是讀取其他值,我給它輸入15.00,它的讀數爲825568816.請幫助我弄清楚它的正確性。readDouble(); java編程
DataInputStream din=new DataInputStream(System.in);
double d=din.readDouble();
System.out,println(d);
我試着用read-double函數讀取double值,但是讀取其他值,我給它輸入15.00,它的讀數爲825568816.請幫助我弄清楚它的正確性。readDouble(); java編程
DataInputStream din=new DataInputStream(System.in);
double d=din.readDouble();
System.out,println(d);
基本上,如果你想閱讀文字不使用DataInputStream
。 DataInputStream
是指由DataOutputStream
或類似的東西寫的數據流。請閱讀readDouble
的文檔,以確切瞭解它在做什麼。你
選項:
Scanner
及其nextDouble()
方法:我的堆棧溢出問題的經驗是,Scanner
是坦率地正確使用BufferedReader
包裝的InputStreamReader
痛苦,然後請撥打readLine()
以獲取一行文字,然後撥打Double.parseDouble()
將其解析爲double
。Scanner
,但只能調用nextLine()
- 基本上,這是一種簡單的方法來讀取System.in
中的文本行。此外,你可能要考慮使用BigDecimal
- 值「15.00」聽起來像它可能是一個財務價值(如價格) - 和那些應存放在BigDecimal
作爲可以代表確切小數值。
我建議這個場景的[Scanner](http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html)類。 –
謝謝馬克,但DataInputStream怎麼了? – Shirisss
請看下面的Jon Skeet的回答。 'DataInputStream'旨在與'DataOutputStream'一起使用。他對其他實現的建議更易於使用,並會給您更好的結果。 –