jstewmc / evaluate-number
将各种数字格式转换为整数和浮点数
v0.1.0
2017-03-05 23:37 UTC
Requires
- php: ^7.0
Requires (Dev)
- jstewmc/test-case: ^1.0
This package is auto-updated.
Last update: 2024-08-29 04:14:41 UTC
README
将各种美国数字格式转换为它们的整数或浮点数等价物,包括
- 分数(例如,
'1/2'
), - 混合数(例如,
'1 1/2'
), - 以逗号分隔的值(例如,
'1,000'
), - 序数(例如,
'first'
), - 基数数(例如,
'one hundred'
), - 美元(例如,
$1,000
),以及 - 百分比(例如,
10%
)。
namespace Jstewmc\EvaluateNumber; // instantiate the service $service = new EvaluateNumber(); // evaluate some stuff! $service(true); // returns (int) 1 $service(1); // returns (int) 1 $service('1'); // returns (int) 1 $service(1.5); // returns (float) 1.5 $service('1.5'); // returns (float) 1.5 $service('1 1/2'); // returns (float) 1.5 $service('3/2'); // returns (float) 1.5 $service('3\2'); // returns (float) 1.5 $service('1000'); // returns (int) 1000 $service('1,000'); // returns (int) 1000 $service('1,000.5'); // returns (float) 1000.5 $service('1st'); // returns (int) 1 $service('second'); // returns (int) 2 $service('one hundred'); // returns (int) 100 $service('10%'); // returns (float) 0.1 $service('$1000') // returns (int) 1000 $service('1,0,0'); // returns 0 $service('abc'); // returns 0 $service(array()); // returns 0 $service(array('foo')); // returns 1 $service(new stdClass()); // returns 1
规则
尽可能的情况下,此库遵循PHP原生intval() 和 floatval() 函数的约定。
整数
整数按原样返回
namespace Jstewmc\EvaluateNumber; $service = new EvaluateNumber(); $service(-1); // returns (int) -1 $service(0); // returns (int) 0 $service(1); // returns (int) 1
浮点数
浮点数按原样返回
namespace Jstewmc\EvaluateNumber; $service = new EvaluateNumber(); $service(-1.0); // returns (float) -1.0 $service(0.0); // returns (float) 0.0 $service(1.0); // returns (float) 1.0
布尔值
布尔值返回它们的整数等价物
namespace Jstewmc\EvaluateNumber; $service = new EvaluateNumber(); $service(true); // returns (int) 1 $service(false); // returns (int) 0
字符串
以下格式的字符串将返回它们的整数或浮点数等价物
- 数字字符串(例如,
'1'
); - 千位分隔的数字(例如,
'1,000'
); - 分数(例如,'
'1/2'
); - 混合数(例如,
'1 1/2'
); - 序数(例如,
'one hundred'
); - 基数数(例如,
'first'
); - 后缀数(例如,
'1st'
); - 百分比(例如,
'1%'
);以及 - 美元(例如,
'$1,000'
)。
所有其他字符串返回0。
namespace Jstewmc\EvaluateNumber; $service = new EvaluateNumber(); $service('1'); // returns (int) 1 $service('1,000'); // returns (int) 1000 $service('1/2'); // returns (float) 0.5 $service('1 1/2'); // returns (float) 1.5 $service('one hundred'); // returns (int) 100 $service('first'); // returns (int) 1 $service('1st'); // returns (int) 1 $service('1%'); // returns (float) 0.01 $service('$1,000'); // returns (int) 1000 $service('foo'); // returns (int) 0
数组
空数组返回0,非空数组返回1
namespace Jstewmc\EvaluateNumber; $service = new EvaluateNumber(); $service([]); // returns 0 $service(['foo']); // returns 1 $service(['foo', 'bar']); // returns 1
对象
此方法不应用于对象。然而,与原生的PHP intval() 或 floatval() 方法不同,此库不会引发错误。相反,对象始终返回1。
namespace Jstewmc\EvaluateNumber; $service = new EvaluateNumber(); $service(new SplObject()); // returns 1
就这样!
作者
许可
版本
0.1.0,2017年3月5日
- 首次发布