MathGroup Archive 2003

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Severe ToExpression Fault?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg42901] Re: [mg42892] Severe ToExpression Fault?
  • From: jmt <jmt at dxdydz.net>
  • Date: Sat, 2 Aug 2003 04:12:25 -0400 (EDT)
  • References: <200308010526.BAA09833@smc.vnet.net>
  • Reply-to: jmt at dxdydz.net
  • Sender: owner-wri-mathgroup at wolfram.com

Your expression is evaluated as :
-1.97 E -4
where E is the base of natural logarithms.

Depending on the format of your string, you can use StringReplace, 
StringPosition, StringReplacePart to modify your string and have
"-1.97 Power[10,-4]"
ToExpression will give therefore a correct result.
For instance :
evaluator[v_String] := Module[{s, e, exp, mant},
    s = First@First@StringPosition[v, "E"];
    e = StringLength[v];
    exp = ToExpression@StringTake[v, {s + 1, e}];
    mant = StringTake[v, s - 1];
    mant = ToExpression@StringReplace[mant, "," -> "."];
    mant Power[10, exp]
    ]

evaluator[-1,97E-04"]
-0.000197

On Friday 01 August 2003 07:26, Nils Theune wrote:
  > Hi folks,
  >
  > running Mathematica 4.0.1 I am stuck with the following problem:
  >
  > Input:
  > Print["-1,97E-04"];
  > Print[StringReplace["-1,97E-04", {"," -> "."}]];
  > Print[ToExpression[StringReplace["-1,97E-04", {"," -> "."}]]];
  >
  > Output:
  > -1,97E-04
  > -1.97E-04
  > -9.35502
  >
  > Can somebody explain this to me? Why does the ToExpression Function
  > not make the decimal -1.97E-04 out of the String "-1.97E-04". What in
  > the hell is going wrong (-9.35502->"Where does this number come
  > from?") and what can be done to circumvent the ToExpression function.
  >
  > I am greatful for any kind of comments on this problem/bug.
  >
  > regards
  > Nils


  • Prev by Date: Re: Severe ToExpression Fault?
  • Next by Date: Re: NDSolve
  • Previous by thread: Re: Severe ToExpression Fault?
  • Next by thread: Re: Severe ToExpression Fault?