Re: [問題] 大家是如何讀科學記號的?

看板java作者 (David)時間17年前 (2007/01/17 01:17), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
※ 引述《LPH66 (涼宮春日症候群)》之銘言: : ※ 引述《banyh (BB)》之銘言: : : 我都用StreamTokenizer,可是用起來有點麻煩 : : st = new StreamTokenizer(new FileReader(filename)); : : st.wordChars ('+','e'); // 要把+,-,e都視為文字 : : st.nextToken(); // 這邊讀fraction : : x = st.nval; : : st.nextToken(); // 這邊讀exponential : : if (st.ttype == StreamTokenizer.TT_WORD) : : x = Double.parseDouble (x + st.sval); : : else : : st.pushBack(); : : 例如 1.23e-3,StreamTokenizer一定會讀成 "1.23" "e-3" : : 所以要用parseDouble合起來 : : 有人有更簡便的方法嗎? : 個人是喜歡用Scanner的nextDouble() : 剛剛試的結果Scanner會自動判斷這是科學記號 讀進正確的值 : (其實API裡就有說它可以讀了: : Number syntax : <...> : Exponent :: = ( [eE] [+-]? Digit+ ) : Decimal :: = ( [-+]? DecimalNumeral Exponent? ) : | LocalPositivePrefix DecimalNumeral LocalPositiveSuffix Exponent? : | LocalNegativePrefix DecimalNumeral LocalNegativeSuffix Exponent? : ) 其實Scanner還有很多用處啦~~ Scanner除了可以讀System.in外還可以讀檔案 整個就是方便阿... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 124.8.75.223
文章代碼(AID): #15hGYy5t (java)
文章代碼(AID): #15hGYy5t (java)