Add fraction number string support.
This commit is contained in:
parent
5a80fb4245
commit
d9b2dc3c6f
@ -453,7 +453,23 @@ class Utils
|
||||
$number = str_replace('-', '', $number, $count);
|
||||
$negative1 = new BigNumber(-1);
|
||||
}
|
||||
if (strpos($number, '.') > 0) {
|
||||
$comps = explode('.', $number);
|
||||
|
||||
if (count($comps) > 2) {
|
||||
throw new InvalidArgumentException('toBn number must be a valid number.');
|
||||
}
|
||||
$whole = $comps[0];
|
||||
$fraction = $comps[1];
|
||||
|
||||
return [
|
||||
new BigNumber($whole),
|
||||
new BigNumber($fraction),
|
||||
isset($negative1) ? $negative1 : false
|
||||
];
|
||||
} else {
|
||||
$bn = new BigNumber($number);
|
||||
}
|
||||
|
||||
if (isset($negative1)) {
|
||||
$bn = $bn->multiply($negative1);
|
||||
|
@ -490,11 +490,40 @@ class UtilsTest extends TestCase
|
||||
$bn = Utils::toBn('-1');
|
||||
$this->assertEquals($bn->toString(), '-1');
|
||||
|
||||
// $bn = Utils::toBn('-0.1');
|
||||
// $this->assertEquals($bn->toString(), '-0.1');
|
||||
$bn = Utils::toBn('-0.1');
|
||||
$this->assertEquals(count($bn), 3);
|
||||
$this->assertEquals($bn[0]->toString(), '0');
|
||||
$this->assertEquals($bn[1]->toString(), '1');
|
||||
$this->assertEquals($bn[2]->toString(), '-1');
|
||||
|
||||
// $bn = Utils::toBn(-0.1);
|
||||
// $this->assertEquals($bn->toString(), -0.1);
|
||||
$bn = Utils::toBn(-0.1);
|
||||
$this->assertEquals(count($bn), 3);
|
||||
$this->assertEquals($bn[0]->toString(), '0');
|
||||
$this->assertEquals($bn[1]->toString(), '1');
|
||||
$this->assertEquals($bn[2]->toString(), '-1');
|
||||
|
||||
$bn = Utils::toBn('0.1');
|
||||
$this->assertEquals(count($bn), 3);
|
||||
$this->assertEquals($bn[0]->toString(), '0');
|
||||
$this->assertEquals($bn[1]->toString(), '1');
|
||||
$this->assertEquals($bn[2], false);
|
||||
|
||||
$bn = Utils::toBn('-1.69');
|
||||
$this->assertEquals(count($bn), 3);
|
||||
$this->assertEquals($bn[0]->toString(), '1');
|
||||
$this->assertEquals($bn[1]->toString(), '69');
|
||||
$this->assertEquals($bn[2]->toString(), '-1');
|
||||
|
||||
$bn = Utils::toBn(-1.69);
|
||||
$this->assertEquals($bn[0]->toString(), '1');
|
||||
$this->assertEquals($bn[1]->toString(), '69');
|
||||
$this->assertEquals($bn[2]->toString(), '-1');
|
||||
|
||||
$bn = Utils::toBn('1.69');
|
||||
$this->assertEquals(count($bn), 3);
|
||||
$this->assertEquals($bn[0]->toString(), '1');
|
||||
$this->assertEquals($bn[1]->toString(), '69');
|
||||
$this->assertEquals($bn[2], false);
|
||||
|
||||
$bn = Utils::toBn(new BigNumber(1));
|
||||
$this->assertEquals($bn->toString(), '1');
|
||||
|
Loading…
Reference in New Issue
Block a user