aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex <a.kiryukhin@mail.ru>2022-01-06 12:59:10 +0300
committerGitHub <noreply@github.com>2022-01-06 12:59:10 +0300
commit9442a6f4712ec80df799522b8aec2635dc0254a3 (patch)
treef77a01516557a8272eb126722b2eb34fe83a1c30
parentd1d27b494dececc4e96e608d0bb47fd948d7f959 (diff)
parent20f8cabf10ff594a2b6c9dc655d63578988d4d23 (diff)
Merge pull request #92 from ideatic/fix-scientific-notationV2.1.9
fix: broken support for positive exponent numbers
-rw-r--r--src/NXP/Classes/Tokenizer.php2
-rw-r--r--tests/MathTest.php8
2 files changed, 9 insertions, 1 deletions
diff --git a/src/NXP/Classes/Tokenizer.php b/src/NXP/Classes/Tokenizer.php
index f8056c3..77014b8 100644
--- a/src/NXP/Classes/Tokenizer.php
+++ b/src/NXP/Classes/Tokenizer.php
@@ -159,7 +159,7 @@ class Tokenizer
}
// could be in exponent, in which case negative should be added to the numberBuffer
if ($this->numberBuffer && $this->numberBuffer[strlen($this->numberBuffer) - 1] == 'e') {
- $this->numberBuffer .= '-';
+ $this->numberBuffer .= $ch;
continue 2;
}
}
diff --git a/tests/MathTest.php b/tests/MathTest.php
index d086acb..426e514 100644
--- a/tests/MathTest.php
+++ b/tests/MathTest.php
@@ -508,6 +508,14 @@ class MathTest extends TestCase
$this->assertEquals(1, $calculator->execute('1-0'));
}
+ public function testScientificNotation()
+ {
+ $calculator = new MathExecutor();
+ $this->assertEquals(1.5e9, $calculator->execute('1.5e9'));
+ $this->assertEquals(1.5e-9, $calculator->execute('1.5e-9'));
+ $this->assertEquals(1.5e+9, $calculator->execute('1.5e+9'));
+ }
+
public function testGetFunctionsReturnsArray()
{
$calculator = new MathExecutor();