作者LPH66 (凉宫春日症候群)
看板java
标题Re: [问题] 大家是如何读科学记号的?
时间Tue Jan 16 23:12:34 2007
※ 引述《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