data-values / number
数值对象、解析器和格式化器
0.12.3
2022-10-24 08:49 UTC
Requires
- php: >=7.2
- data-values/common: ~1.0|~0.4.0|~0.3.0
- data-values/data-values: ~3.0|~2.0|~1.0|~0.1
- data-values/interfaces: ~1.0|~0.2.0
Requires (Dev)
- ext-bcmath: *
- mediawiki/mediawiki-codesniffer: 34.0.0
- phpunit/phpunit: ~8.5
This package is auto-updated.
Last update: 2024-08-24 12:28:19 UTC
README
包含用于表示数值信息的对象、将用户输入转换为这些对象的自定义解析器以及将它们转换回用户可消费表示的库。
它是 DataValues 库集 的一部分。
在 Packagist 上:
安装
推荐使用 Composer 来使用此库。
Composer
要将此包添加为本地、项目级依赖,只需将 data-values/number
依赖添加到项目的 composer.json
文件中。以下是一个定义此包版本 0.8 依赖的 composer.json
文件的最小示例
{
"require": {
"data-values/number": "0.12.*"
}
}
手动
通过 git 或其他方式获取此包的代码。还要获取所有依赖项。您可以在 composer.json 文件的 "require" 部分中找到依赖项列表。然后处理 src 目录中定义的类的自动加载。
测试
此库附带一套 PHPUnit 测试,覆盖了所有非平凡代码。您可以使用位于根目录的 PHPUnit 配置文件运行这些测试。测试也可以通过 TravisCI 运行,因为根目录中也提供了一个 TravisCI 配置文件。
作者
DataValues Number 由 Wikimedia Deutschland 员工为 Wikidata 项目 创建。
发布说明
0.12.3 (2022-10-24)
- 允许与 data-values/common 1.1.0 和 data-values/interfaces 1.x 一起使用
0.12.2 (2022-10-21)
- 修复
QuantityValue
和UnboundedQuantityValue
的哈希,使其与版本 0.11.1 相同。
0.12.1 (2022-10-21)
- 允许与 data-values/data-values 3.1.0 一起使用
0.12.0 (2022-10-21)
- 提高与 PHP 8.1 的兼容性;特别是现在实现了新的
__serialize
/__unserialize
方法(除仍支持Serializable
接口外)。请确保还使用data-values/data-values
版本 3.1.0(或更高版本)以保持哈希稳定。 - 删除
DATAVALUES_NUMBER_VERSION
常量。
0.11.1 (2021-03-31)
- 修复
DecimalMath::productWithoutBC
以处理大于 2^63-1(有符号 64 位整数的最大值)的乘积。
0.11.0 (2021-03-15)
- 停止支持低于 PHP 7.2 和 HHVM 的版本
0.10.2 (2021-03-15)
- 允许与 data-values/common 1.0.0 一起使用
- 允许与 data-values/interfaces 1.0.0 一起使用
- 允许与 data-values/data-values 3.0.0 一起使用
0.10.1 (2018-10-31)
- 允许与 DataValues 2.x 一起安装
- DecimalMath 的乘积现在四舍五入到 127 个字符,以避免致命错误
0.10.0 (2018-04-11)
- 更改了
DecimalValue
、QuantityValue
和UnboundedQuantityValue
的浮点数到字符串转换算法。现在它使用 PHP 的 "serialize_precision" 默认值 17 位有效数字,而不是一百个大多无关紧要的小数位。 - 停止与 data-values/interfaces 0.1 和 data-values/common 0.2 的兼容性
0.9.1 (2017-08-09)
- 允许与 data-values/common 0.4 一起使用
0.9.0 (2017-08-09)
- 删除 MediaWiki 集成
- 在DecimalParser中删除所有空白字符
- 使用Wikibase的CodeSniffer而不是MediaWiki的
0.8.3 (2017-06-26)
- 修复了
UnboundedQuantityValue::newFromArray
不接受混合值的问题。 - 弃用了
DecimalValue::newFromArray
和UnboundedQuantityValue::newFromArray
。 - 更新了最低要求的PHP版本从5.3到5.5.9。
0.8.2 (2016-11-17)
- 修复了
QuantityFormatter
抑制QuantityValue
的±0。 - 修复了
QuantityHtmlFormatter
中的HTML转义。
0.8.1 (2016-08-02)
UnboundedQuantityValue::newFromArray
和QuantityValue::newFromArray
都接受包含和不包含不确定区间序列化的情况。
0.8.0 (2016-08-01)
- 添加了
DecimalValue::getTrimmed
。 - 添加了
UnboundedQuantityValue
。QuantityValue
扩展了UnboundedQuantityValue
。QuantityParser
现在返回UnboundedQuantityValue
而不是总是猜测一个不确定区间。QuantityFormatter
也接受UnboundedQuantityValue
。
- 当被要求猜测一个不确定区间时,
QuantityParser
默认为±0.5而不是±1,例如1~
变为1±0.5
。 - 当值与已知的确定区间一起渲染时,
QuantityFormatter
不再进行四舍五入。 - 修复了
DecimalMath
中的四舍五入算法(将1.45四舍五入到2而不是1)。 DecimalValue
构造函数可选地接受没有前导加号的字符串。- 删除了
QuantityValue::getSignificantFigures
。 - 删除了
QuantityValue::newFromDecimal
(自0.1以来已弃用)。 QuantityFormatter
构造函数中的$vocabularyUriFormatter
参数不再可以为空。
0.7.0 (2016-04-25)
破坏性更改
- 删除了已弃用的
QuantityUnitFormatter
接口。 - 删除了已弃用的
BasicQuantityUnitFormatter
。
其他更改
- 修复了
DecimalValue
和QuantityValue
允许值在末尾有换行符。 DecimalValue
字符串现在被修剪,允许任何数量的前导和尾随空白。- 添加了对data-values/common 0.2和0.3的显式兼容性。
0.6.0 (2015-09-09)
破坏性更改
QuantityFormatter
构造函数参数以不兼容的方式更改。BasicNumberUnlocalizer::getUnitRegex
返回一个空字符串。使用此方法的QuantityParser
不再接受单位作为输入的一部分。
新增功能
- 添加了
QuantityHtmlFormatter
。 QuantityFormatter
支持一个可选的格式字符串以连接数字和单位。
其他更改
- 弃用了
QuantityUnitFormatter
接口。 - 弃用了
BasicQuantityUnitFormatter
。 QuantityParser
现在总是修剪通过选项获得的单位。- 该组件现在可以与DataValues Interfaces 0.2.x一起安装。
0.5.0 (2015-06-11)
破坏性更改
QuantityFormatter
构造函数参数以不兼容的方式更改
新增功能
- 添加了
QuantityUnitFormatter
接口 - 添加了
BasicQuantityUnitFormatter
- 添加了
QuantityFormatter::OPT_APPLY_UNIT
选项 - 添加了
QuantityParser::OPT_UNIT
选项 - 添加了
DecimalParser::applyDecimalExponent
- 添加了
DecimalParser::splitDecimalExponent
其他更改
QuantityParser
现在正确检测科学记数法的精度- 在
DecimalFormatter
和QuantityFormatter
中使构造函数参数可选 - 更新DataValues Interfaces依赖项到0.1.5
0.4.1 (2014-10-09)
- 该组件现在可以与DataValues 1.x一起安装
0.4 (2014-04-24)
- 将Unlocalizer接口重命名为NumberUnlocalizer
- 将Localizer接口重命名为NumberLocalizer
- 将BasicUnlocalizer接口重命名为BasicNumberUnlocalizer
- 将BasicLocalizer接口重命名为BasicNumberLocalizer
- 在ValueParsers中引入了FORMAT_NAME类常量,以便按照预期使用它们作为expectedFormat
- 将ValueParsers更改为在构造ParseException时传递rawValue和expectedFormat
0.3 (2014-03-12)
- Unlocalizer:添加了getNumberRegex()和getUnitRegex()
- Unlocalizer:用unlocalizeNumber()替换了unlocalize()
- Localizer:用localizeNumber()替换了localize()
- Localizer和Unlocalizer:不再需要在方法调用中要求目标语言和选项
- QuantityParser:修复了国际化数量字符串的解析
0.2 (2013-12-16)
删除操作
- IntParser 已移动到 data-values/common
- FloatParser 已移动到 data-values/common
新增功能
- DecimalMath::min
- DecimalMath::max
- DecimalMath::shift
- 在 DecimalFormatter 中添加了强制显示符号的选项
改进
- QuantityParser 和 DecimalParser 现在支持科学记数法
- DecimalParser 现在支持对数值进行本地化解析
- DecimalFormatter 现在支持对数值进行本地化
错误修复
- 修复了在操作十进制值时出现的浮点数错误。(错误 56682)
0.1 (2013-11-17)
带有这些功能的初始版本发布
- DecimalMath
- DecimalValue
- QuantityValue
- DecimalFormatter
- QuantityFormatter
- DecimalParser
- FloatParser
- IntParser
- QuantityParser