The *variable* isn't in scientific notation, it simply stores the value (the specifics of how it does so are irrelevant to your question). The issue of notation is how the value of that variable is *displayed*.

It sounds like your problem is actually "how do I parse a number in scientific notation into a value?" ... since I've commented heavily in your previous posts on calculator programs! Scientific notation is simply the use of an exponent to reduce the need for excessive zeros present in the "standard form" for very large or very small numbers with limited number of significant digits (e.g. 0.00000000345 or 3450000000.0). So assuming you have something like 3.45E-9 or 3.45E+9, you want to know (1) how to identify that that's a number, not a bizarre equation with a variable "E" in the middle of it, and (2) how to read that number into a float/double. The answer to the first question can be addressed using "regular expressions". Your compiler probably includes a header-file and library for this. Coming up with an expression to match your string against shouldn't be too hard: "an optional + or - sign, followed by a 1-9, optionally followed by a decimal point and zero or more decimal digits, followed by an E, an optional + or - sign, and 1 or more decimal digits". Once you know that entire chunk of string represents a floating-point number in scientific notation, `cin`

can probably read it as-is:

```
double val;
cin >> val;
```