Re: [問題] 大家是如何讀科學記號的?
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):