madbyad / mpl-number-converter
一个简单的PHP库,用于数字转换
Requires
- php: >=7.0.0
Requires (Dev)
- phpunit/phpunit: 9.6.x-dev
README
MPL(MadByAd PHP库)数字转换器是一个简单的PHP库,用于数字转换和其他功能,例如将数字转换为罗马数字(例如,将12转换为XII),缩写数字(例如,将25.690缩写为25.6K),格式化数字(例如,将1000000格式化为1.000.000)以及其他数字操作功能。
安装
要安装此包,请打开Composer并输入以下命令
composer require madbyad/mpl-number-converter
缩写数字
要缩写或展开数字,可以使用numberToAbbreviate
或abbreviateToNumber
方法。
numberToAbbreviate(int $number, int $precision = 1, array $symbolSet = null)
方法用于缩短长整数,它接受3个参数,第一个是要转换的整数,第二个是确定精度(小数点后多少位数字),最后一个是在数字超过一定位数时使用的符号集。为了定义自定义的符号集,参数必须是键为数位,值为要使用符号的关联数组。
示例1
echo NumberConverter::numberToAbbreviate(1250000);
输出
"1.3 M"
示例2
echo NumberConverter::numberToAbbreviate(1250000, [ 10**3 => "RB", 10**6 => "JT", 10**9 => "M", 10**12 => "T", ]);
输出
"1.3 JT"
abbreviateToNumber(string $abbreviatedNumber, array $symbolSet = null)
方法用于展开缩写的数字(将缩写整数转换为普通整数),它接受2个参数,第一个是缩写数字,第二个是在数字超过一定位数时使用的符号集。为了定义自定义的符号集,参数必须是键为数位,值为要使用符号的关联数组。
示例1
echo NumberConverter::numberToAbbreviate("1.3 M");
输出
1300000
示例2
echo NumberConverter::numberToAbbreviate("1.3 JT", [ 10**3 => "RB", 10**6 => "JT", 10**9 => "M", 10**12 => "T", ]);
输出
1300000
格式化数字
要格式化或取消格式化数字,可以使用numberToFormat
和formatToNumber
方法
numberToFormat(int $integer, string $separatorStyle = ".")
方法用于格式化数字(使其易于阅读,特别是对于长数字),它接受2个参数,第一个是整数数字,第二个是分隔符样式,它确定您想使用哪种分隔符,默认为.
,但您可以将其更改为除了a-z
A-Z
0-9
之外的任何内容,并且它必须是一个1字符长的字符串。
示例
echo NumberConverter::numberToFormat(15000000); echo NumberConverter::numberToFormat(15000000, "-"); echo NumberConverter::numberToFormat(15000000, "_"); echo NumberConverter::numberToFormat(15000000, " ");
输出
"15.000.000" "15-000-000" "15_000_000" "15 000 000"
formatToNumber(string $formattedInt)
方法用于取消格式化数字(将格式化的整数字符串转换为普通整数),它只接受一个参数,即格式化的整数字符串。
示例
echo NumberConverter::formatToNumber("15.000.000"); echo NumberConverter::formatToNumber("15-000-000"); echo NumberConverter::formatToNumber("15_000_000"); echo NumberConverter::formatToNumber("15 000 000");
输出
15000000 15000000 15000000 15000000
字母转换
要将数字转换为字母或相反,可以使用numberToAlphabet
和alphabetToNumber
方法
numberToAlphabet(int $number, bool $uppercase = true)
方法用于将数字转换为字母(用于创建按字母顺序排列的列表),它只接受2个参数,第一个是整数,第二个是确定字母是大写还是小写。
示例
echo NumberConverter::numberToAlphabet(1); echo NumberConverter::numberToAlphabet(2); echo NumberConverter::numberToAlphabet(3); echo "\n"; echo NumberConverter::numberToAlphabet(4, false); echo NumberConverter::numberToAlphabet(5, false); echo NumberConverter::numberToAlphabet(6, false);
输出
"A" "B" "C" "d" "e" "f"
alphabetToNumber(string $alphabet)
方法用于将字母字符串转换为其整数值,它只接受1个参数,即字母字符串。
示例
echo NumberConverter::alphabetToNumber("A"); echo NumberConverter::alphabetToNumber("O"); echo NumberConverter::alphabetToNumber("Z");
输出
1 13 26
二进制转换
要将数字转换为二进制或反之,可以使用 numberToBinary
和 binaryToNumber
方法
numberToBinary(int $number)
方法用于将整数转换为二进制字符串,它接受一个参数,即数字
示例
echo NumberConverter::numberToBinary(2); echo NumberConverter::numberToBinary(18); echo NumberConverter::numberToBinary(64);
输出
"10" "10010" "1000000"
binaryToNumber(string $binary)
方法用于将二进制字符串转换为整数,它接受一个参数,即二进制字符串
示例
echo NumberConverter::binaryToNumber("10"); echo NumberConverter::binaryToNumber("10010"); echo NumberConverter::binaryToNumber("1000000");
输出
2 18 64
十六进制转换
要将数字转换为十六进制字符串或反之,可以使用 numberToHexadecimal
和 hexadecimalToNumber
方法
numberToHexadecimal(int $number, bool $uppercase = true)
方法用于将数字转换为十六进制字符串,它接受两个参数,第一个是整数数字,第二个用于确定十六进制字符串中的字母是否应该为大写
示例
echo NumberConverter::numberToHexadecimal(10); echo NumberConverter::numberToHexadecimal(159); echo NumberConverter::numberToHexadecimal(1200); echo "\n"; echo NumberConverter::numberToHexadecimal(10, false); echo NumberConverter::numberToHexadecimal(159, false); echo NumberConverter::numberToHexadecimal(1200, false);
输出
"A" "9F" "4B0" "a" "9f" "4b0"
hexadecimalToNumber(string $hexadecimal)
方法用于将十六进制字符串转换为整数,它只接受一个参数,即十六进制字符串
示例
echo NumberConverter::hexadecimalToNumber("A"); echo NumberConverter::hexadecimalToNumber("9F"); echo NumberConverter::hexadecimalToNumber("4B0");
输出
10 159 1200
八进制转换
要将数字转换为八进制或反之,可以使用 numberToOctal
和 octalToNumber
方法
numberToOctal(int $number)
方法用于将数字转换为八进制,它只接受一个参数,即整数数字
示例
echo NumberConverter::numberToOctal(16); echo NumberConverter::numberToOctal(64); echo NumberConverter::numberToOctal(511);
输出
"20" "100" "777"
octalToNumber(string $octal)
方法用于将八进制字符串转换为数字,它只接受一个参数,即八进制字符串
示例
echo NumberConverter::numberToOctal("20"); echo NumberConverter::numberToOctal("100"); echo NumberConverter::numberToOctal("777");
输出
16 64 511
罗马数字转换
要将数字转换为罗马数字或反之,可以使用 numberToRoman
和 romanToNumber
方法
numberToRoman(int $number)
方法用于将数字转换为罗马数字(用于制作使用罗马数字排序的列表),它只接受一个参数,即整数数字
示例
echo NumberConverter::numberToRoman(1); echo NumberConverter::numberToRoman(2); echo NumberConverter::numberToRoman(3); echo NumberConverter::numberToRoman(4); echo NumberConverter::numberToRoman(5); echo NumberConverter::numberToRoman(6); echo NumberConverter::numberToRoman(7); echo NumberConverter::numberToRoman(8); echo NumberConverter::numberToRoman(9); echo NumberConverter::numberToRoman(10);
输出
"I" "II" "III" "IV" "V" "VI" "VII" "VIII" "IX" "X"
romanToNumber(string $roman)
方法用于将罗马数字转换为数字,它只接受一个参数,即罗马数字
示例
echo NumberConverter::romanToNumber("I"); echo NumberConverter::romanToNumber("II"); echo NumberConverter::romanToNumber("III"); echo NumberConverter::romanToNumber("IV"); echo NumberConverter::romanToNumber("V"); echo NumberConverter::romanToNumber("VI"); echo NumberConverter::romanToNumber("VII"); echo NumberConverter::romanToNumber("VIII"); echo NumberConverter::romanToNumber("IX"); echo NumberConverter::romanToNumber("X");
输出
1 2 3 4 5 6 7 8 9 10