louisgab / php-calc
简单的流畅浮点操作库
v0.2.0
2020-12-23 19:49 UTC
Requires
- php: ^7.4
Requires (Dev)
- phpunit/phpunit: ^9
This package is auto-updated.
Last update: 2024-09-29 05:43:03 UTC
README
💯 简单流畅的浮点操作库。
Calc旨在提供易于阅读和没有任何依赖的计算工具。
它包含一个Number
,这是一个不可变值对象,可以启用流畅的浮点操作。
为什么
如果你曾经处理过满是这种垃圾的代码库
$result = round(($b != 0 ? ((1+$a)/$b) : $c)*0.25, 2)
我敢肯定你会喜欢它
$result = Number::of($b) ->when(Number::of($b)->isZero(), fn($b) => $c fn($b) => Number::one()->plus($a)->divide($b), ) ->multiply(0.25) ->round(2) ->value()
你可能认为它与brick/math类似,这是一个非常好的包,但Calc的目的不同。
如果你对浮点数足够满意——除非你处理的是会计或科学等重要数据,否则应该如此——那么使用GMP或bcmath就是过度了。
这就是Calc的用途,仍然使用浮点数,同时享受良好的可读性。另一个优点是它尽可能地处理浮点数问题(例如0.1 + 0.2 == 0.3 // false
),这样你就不必每次都考虑它(如果你与初级开发者合作,这还会帮他们避免一些他们甚至不知道存在的问题!)。
安装
通过composer
composer require louisgab/php-calc
使用方法
简单到
use Louisgab\Calc\Number; Number::of($anything);
并且好用到
public function carsNeeded(Number $people, Number $placesPerCar): int { return $people->divide($placesPerCar)->round(0)->toInt(); }
请参阅DOCS
测试
composer test
路线图
-
Number
-
分数
-
百分比
变更日志
请参阅CHANGELOG
贡献
非常欢迎!
许可证
请参阅MIT许可证(MIT)。