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

看板java作者 (涼宮春日症候群)時間17年前 (2007/01/16 23:12), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
※ 引述《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? ) -- 發現1.5引進Scanner這東西真是太好用了 簡直像在用C的scanf一樣... -- "LPH" is for "Let Program Heal us".... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 192.192.197.115
文章代碼(AID): #15hEjaXU (java)
討論串 (同標題文章)
文章代碼(AID): #15hEjaXU (java)