Re: how to get string in sci. notation to a number?
- To: mathgroup at smc.vnet.net
- Subject: [mg123360] Re: how to get string in sci. notation to a number?
- From: Bill Rowe <readnews at sbcglobal.net>
- Date: Sat, 3 Dec 2011 04:13:39 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
On 12/2/11 at 7:21 AM, ralph.dratman at gmail.com (Ralph Dratman) wrote:
>But that is so easy with pattern replacement. More experienced
>people will surely manage it without using StringReplace, but I get
>flummoxed on which kind of Hold to use.
>In[652]:= flpnumsStr =
>ToString[{{"4.998865e+000", "9.564453e-006"}, {"5.630450e+000",
>"9.194384e-006"}, {"6.113276e+000", "8.134170e-006"}}]
>Out[652]= "{{4.998865e+000, 9.564453e-006}, {5.630450e+000,
>9.194384e-006}, {6.113276e+000, 8.134170e-006}}"
>In[653]:= ToExpression[StringReplace[flpnumsStr, "e" -> "*10^"]]
>Out[653]= {{4.99887, 9.56445*10^-6}, {5.63045,
>9.19438*10^-6}, {6.11328, 8.13417*10^-6}}
I assume you really didn't manually enter the strings in the
form of Mathematica lists. So, let me start by putting the
output of your ToString above into something that likely
resembles the original data, i.e.,
In[5]:= p =
StringReplace[
StringTake[
ToString[{{"4.998865e+000", "9.564453e-006"}, {"5.630450e+000",
"9.194384e-006"}, {"6.113276e+000",
"8.134170e-006"}}], {3, -3}], "}, {" -> "\n"]
Out[5]= 4.998865e+000, 9.564453e-006
5.630450e+000, 9.194384e-006
6.113276e+000, 8.134170e-006
Now, these can be read in as numbers simply by using ImportString
In[6]:= ImportString[p, "CSV"]
Out[6]= {{4.998865, 9.564453*^-6}, {5.63045, 9.194384*^-6},
{6.113276, 8.13417*^-6}}