pronamic / wp-number
WordPress 数字库。
Requires
- php: >=7.4
Requires (Dev)
- bamarni/composer-bin-plugin: ^1.4
- koodimonni-language/de_de: *
- koodimonni-language/fr_fr: *
- koodimonni-language/nl_nl: *
- overtrue/phplint: ^4.5
- php-coveralls/php-coveralls: ^2.5
- phpmd/phpmd: ^2.13
- phpstan/phpstan: ^1.11
- pronamic/pronamic-cli: ^1.1
- pronamic/wp-coding-standards: ^2.2
- roots/wordpress: ^6.0
- szepeviktor/phpstan-wordpress: ^1.3
- vimeo/psalm: ^5.24
- wp-phpunit/wp-phpunit: ^6.1
- yoast/phpunit-polyfills: ^1.0
README
WordPress 数字库。
目录
入门
安装
composer require pronamic/wp-number
使用方法
$number = Number::from_float( 123.50 )->add( 0.45 );
echo \esc_html( $number->format_i18n( 2 ) );
设计原则
数字就是数字
通常,一个数字就是一个数字,不是一个字符串,这意味着任何编程语言都将数字视为数字。因此,数字本身并不暗示任何特定的格式(例如使用 .000021 而不是 2.1e-5)。这与显示带前导零的数字(如 0.000021)或对齐数字列表没有区别。这是任何编程语言中都会遇到的一般问题:如果您需要特定的格式,您需要使用编程语言的格式化函数指定它。
当然,除非您将数字指定为字符串并在需要时将其转换为实际数字。某些语言可以隐式地执行此操作。
https://stackoverflow.com/a/1471792
指数形式/科学记数法中的数字
2.1E-5 与 0.000021 是相同的数字。这就是打印小于 0.001 的数字的方式。如果需要特定格式,请使用 printf()。
编辑 如果您不熟悉
2.1E-5
语法,您应该知道它是 2.1×10-5 的缩写。这是大多数编程语言表示科学记数法中数字的方式。
https://stackoverflow.com/a/1471694
前导零
在 https://github.com/moneyphp/money 中不允许使用前导零
不允许使用前导零
来源: https://github.com/moneyphp/money/search?q=leading+zero
这可能与以下用户注释有关
小心使用 GMP - 它将数字字符串中的前导零视为表示数字为八进制,而 'bc' 则不是
gmp_strval("000100", 10) => 64
bcmul("000100", "1") => 100
来源: https://php.ac.cn/manual/en/book.gmp.php#106521
<?php $a = 1234; // decimal number $a = 0123; // octal number (equivalent to 83 decimal) $a = 0x1A; // hexadecimal number (equivalent to 26 decimal) $a = 0b11111111; // binary number (equivalent to 255 decimal) $a = 1_234_567; // decimal number (as of PHP 7.4.0) ?>
来源: https://php.ac.cn/manual/en/language.types.integer.php
数字字面量中的前导零表示 "这是八进制"。但不要混淆:字符串中的前导零则不然。因此:
$x = 0123; // 83
$y = "0123" + 0 // 123
来源: https://php.ac.cn/manual/en/language.types.integer.php#111523