kdabrow/math

BCMath 的 Objective 包装器

1.0.0 2023-02-14 09:30 UTC

This package is auto-updated.

Last update: 2024-09-14 13:07:46 UTC


README

GitHub Workflow Status Packagist Version

数学

BCMath 的 Objective 包装器

安装

通过 composer 安装

composer require kdabrow/math

使用方法

首先声明可变数字。第二个字符串经过验证并转换为正确的格式。以下是转换数字的示例(注释中包含转换后的数字)

use Kdabrow\Math\Number;

new Number("100"); // 100

new Number("-100"); // -100

new Number("100,11"); // 100.11

new Number("100.11"); // 100.11

new Number("10,000.11"); // 10000.11

new Number("10 000.11"); // 10000.11

new Number("10'000.11"); // 10000.11

new Number(".11"); // 0.11

new Number(",11"); // 0.11

new Number("0,11"); // 0.11

new Number("0.11"); // 0.11

然后使用 Number 类提供的 API。所有方法(除了 'sqrt')都接受给定格式的参数

// numeric string
$number->add('100');

// Number object
$number->add(new Number('100'));

// array of strings  
$number->add(['100', '100']);

// array of Number objects
$number->add([new Number('100'), new Number('100')]);
 
// object implementing ArrayAccess interface
$number->add(new Collection()); 

// many formats or same elements at the same time
$number->add('100', new Number('200'), ['100', new Number('200')]);  

加法

use Kdabrow\Math\Number;

$number = new Number('700');

$number->add('100'); // 800

减法

use Kdabrow\Math\Number;

$number = new Number('700');

$number->subtract('100'); // 600

乘法

use Kdabrow\Math\Number;

$number = new Number('700');

$number->multiply('2'); // 1400

除法

use Kdabrow\Math\Number;

$number = new Number('700');

$number->divide('2'); // 350

平方根

use Kdabrow\Math\Number;

$number = new Number('16');

$number->sqrt(); // 4

use Kdabrow\Math\Number;

$number = new Number('2');

$number->pow('3'); // 8

等于

use Kdabrow\Math\Number;

$number = new Number('2');

$number->isEqual('3'); // false
$number->isEqual('2'); // true
$number->isEqual('1'); // false

等于或更大

use Kdabrow\Math\Number;

$number = new Number('2');

$number->isEqualOrBigger('3'); // false
$number->isEqualOrBigger('2'); // true
$number->isEqualOrBigger('1'); // true

等于或更小

use Kdabrow\Math\Number;

$number = new Number('2');

$number->isEqualOrLower('3'); // true
$number->isEqualOrLower('2'); // true
$number->isEqualOrLower('1'); // false

小于

use Kdabrow\Math\Number;

$number = new Number('2');

$number->isLower('3'); // true
$number->isLower('2'); // true
$number->isLower('1'); // false

大于

use Kdabrow\Math\Number;

$number = new Number('2');

$number->isBigger('3'); // false
$number->isBigger('2'); // true
$number->isBigger('1'); // true

开发

要运行单元测试,请进入项目文件夹并在控制台中输入以下命令

vendor/bin/phpunit

包包含一个能够运行测试的 Docker 容器

docker compose run php vendor/bin/phpunit