data-values/number

数值对象、解析器和格式化器

0.12.3 2022-10-24 08:49 UTC

README

包含用于表示数值信息的对象、将用户输入转换为这些对象的自定义解析器以及将它们转换回用户可消费表示的库。

它是 DataValues 库集 的一部分。

Build Status Code Coverage Scrutinizer Quality Score

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)

  • 修复 QuantityValueUnboundedQuantityValue 的哈希,使其与版本 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)

  • 更改了 DecimalValueQuantityValueUnboundedQuantityValue 的浮点数到字符串转换算法。现在它使用 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::newFromArrayUnboundedQuantityValue::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::newFromArrayQuantityValue::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

其他更改

  • 修复了DecimalValueQuantityValue允许值在末尾有换行符。
  • 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现在正确检测科学记数法的精度
  • DecimalFormatterQuantityFormatter中使构造函数参数可选
  • 更新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

链接