madbyad/mpl-number-converter

一个简单的PHP库,用于数字转换

1.0.0 2024-04-10 14:02 UTC

This package is auto-updated.

Last update: 2024-09-15 05:54:59 UTC


README

MPL(MadByAd PHP库)数字转换器是一个简单的PHP库,用于数字转换和其他功能,例如将数字转换为罗马数字(例如,将12转换为XII),缩写数字(例如,将25.690缩写为25.6K),格式化数字(例如,将1000000格式化为1.000.000)以及其他数字操作功能。

安装

要安装此包,请打开Composer并输入以下命令

composer require madbyad/mpl-number-converter

缩写数字

要缩写或展开数字,可以使用numberToAbbreviateabbreviateToNumber方法。

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

格式化数字

要格式化或取消格式化数字,可以使用numberToFormatformatToNumber方法

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

字母转换

要将数字转换为字母或相反,可以使用numberToAlphabetalphabetToNumber方法

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

二进制转换

要将数字转换为二进制或反之,可以使用 numberToBinarybinaryToNumber 方法

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

十六进制转换

要将数字转换为十六进制字符串或反之,可以使用 numberToHexadecimalhexadecimalToNumber 方法

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

八进制转换

要将数字转换为八进制或反之,可以使用 numberToOctaloctalToNumber 方法

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

罗马数字转换

要将数字转换为罗马数字或反之,可以使用 numberToRomanromanToNumber 方法

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