toFixedString(num: number, count: number)

版本要求:
@ray-js/panel-sdk≥1.0.0

描述

将数字转换为指定长度的字符串,不足时前补零,超出时从右侧截取

参数

参数类型必填说明
numnumber是需要转换的数字
countnumber是目标字符串的固定长度

返回值

类型:string
固定长度的字符串,负数会保留负号前缀

示例代码

基础用法

import { utils } from '@ray-js/panel-sdk';

const { toFixedString } = utils;

toFixedString(111, 5);  // '00111'
toFixedString(-42, 4);  // '-0042'
toFixedString(123456, 3); // '456'

toFilledString(num: number, count: number)

版本要求:
@ray-js/panel-sdk≥1.0.0

描述

将数字转换为指定最小长度的字符串,不足时前补零,超出时保持原样

参数

参数类型必填说明
numnumber是需要转换的数字
countnumber是目标字符串的最小长度

返回值

类型:string
至少为 count 位的字符串,负数会保留负号前缀

示例代码

基础用法

import { utils } from '@ray-js/panel-sdk';

const { toFilledString } = utils;

toFilledString(111, 5);      // '00111'
toFilledString(-1111111, 5); // '-1111111'
toFilledString(42, 4);       // '0042'

bytesToHexString(bytes: number[])

版本要求:
@ray-js/panel-sdk≥1.0.0

描述

将字节数组转换为十六进制字符串

参数

参数类型必填说明
bytesnumber[]是字节数组,每个元素为 0-255 的整数

返回值

类型:string
对应的十六进制字符串,每字节两个字符

示例代码

基础用法

import { utils } from '@ray-js/panel-sdk';

const { bytesToHexString } = utils;

bytesToHexString([1, 2]);   // '0102'
bytesToHexString([23, 2]);  // '1702'
bytesToHexString([255, 0]); // 'ff00'

numToByteNumbers(num: number, bytes?: number)

版本要求:
@ray-js/panel-sdk≥1.0.0

描述

将十进制整数转换为大端字节数组

参数

参数类型必填说明
numnumber是需要转换的十进制整数
bytesnumber否最小字节数,默认为 2;当结果不足该长度时会在高位补 0

返回值

类型:number[]
对应的字节数组,高位在前;若数值超过 bytes 指定的宽度,不会截断

示例代码

基础用法

import { utils } from '@ray-js/panel-sdk';

const { numToByteNumbers } = utils;

numToByteNumbers(111);      // [0, 111]
numToByteNumbers(1040001);  // [15, 222, 129]
numToByteNumbers(256, 2);   // [1, 0]

intToHighLow(num: number)

版本要求:
@ray-js/panel-sdk≥1.0.0

描述

将整数拆分为高低字节数组

参数

参数类型必填说明
numnumber是需要拆分的整数

返回值

类型:[number, number]
包含 [高 8 位, 低 8 位] 的元组

示例代码

基础用法

import { utils } from '@ray-js/panel-sdk';

const { intToHighLow } = utils;

intToHighLow(2838); // [11, 22]
intToHighLow(5643); // [22, 11]
intToHighLow(256);  // [1, 0]

inMaxMin(min: number, max: number, value: number)

版本要求:
@ray-js/panel-sdk≥1.0.0

描述

将数值限制在最小值和最大值之间

参数

参数类型必填说明
minnumber是允许的最小值
maxnumber是允许的最大值
valuenumber是需要限制的值

返回值

类型:number
限制后的值,保证 min <= 返回值 <= max

示例代码

基础用法

import { utils } from '@ray-js/panel-sdk';

const { inMaxMin } = utils;

inMaxMin(1, 233, 2838); // 233(超过最大值,返回最大值)
inMaxMin(2, 0, 1);      // 1(在范围外但参数顺序注意 min < max)
inMaxMin(0, 100, 50);   // 50(在范围内,原样返回)

scaleNumber(scale: number, value: number)

版本要求:
@ray-js/panel-sdk≥1.0.0

描述

按指定精度缩放数字并返回字符串

参数

参数类型必填说明
scalenumber是缩放精度,表示除以 10^scale 并保留 scale 位小数
valuenumber是需要缩放的数值

返回值

类型:string
缩放后的数字字符串

示例代码

基础用法

import { utils } from '@ray-js/panel-sdk';

const { scaleNumber } = utils;

scaleNumber(2, 10245); // '102.45'
scaleNumber(1, 1024);  // '102.4'
scaleNumber(0, 42);    // '42'

range(start: number, end: number, step?: number)

版本要求:
@ray-js/panel-sdk≥1.0.0

描述

生成指定范围的数字数组

参数

参数类型必填说明
startnumber是起始值
endnumber是结束值
stepnumber否步进值,默认为 1

返回值

类型:number[]
从 start 到 end,步长为 step 的数组

示例代码

基础用法

import { utils } from '@ray-js/panel-sdk';

const { range } = utils;

range(0, 3);      // [0, 1, 2]
range(1, 10, 3);  // [1, 4, 7]
range(0, -3, -1); // [0, -1, -2]

calcPosition(value: number, min: number, max: number, newMin: number, newMax: number)

版本要求:
@ray-js/panel-sdk≥1.0.0

描述

将数值从一个范围线性映射到另一个范围

参数

参数类型必填说明
valuenumber是原始值
minnumber是原始范围的最小值
maxnumber是原始范围的最大值
newMinnumber是目标范围的最小值
newMaxnumber是目标范围的最大值

返回值

类型:number
映射到目标范围后的值

示例代码

基础用法

import { utils } from '@ray-js/panel-sdk';

const { calcPosition } = utils;

calcPosition(50, 0, 100, -100, 0);   // -50
calcPosition(255, 0, 255, 0, 100);   // 100
calcPosition(127.5, 0, 255, 0, 100); // 50

calcPercent(min: number, max: number, value: number, offset?: number)

版本要求:
@ray-js/panel-sdk≥1.0.0

描述

计算数值在指定范围内的百分比

参数

参数类型必填说明
minnumber是范围最小值
maxnumber是范围最大值
valuenumber是需要计算百分比的值,会被限制在 [min, max] 内
offsetnumber否百分比起始偏移量(0-1),默认为 0

返回值

类型:number
0 到 1 之间的百分比值

示例代码

基础用法

import { utils } from '@ray-js/panel-sdk';

const { calcPercent } = utils;

calcPercent(0, 100, 50);       // 0.5
calcPercent(25, 255, 25);      // 0
calcPercent(25, 255, 25, 0.1); // 0.1(带偏移量)

getBitValue(num: number, idx: number)

版本要求:
@ray-js/panel-sdk≥1.0.0

描述

获取数字在二进制表示中指定位置的位值

参数

参数类型必填说明
numnumber是源数字
idxnumber是位索引(从低位开始,0 为最低位)

返回值

类型:number
该位置的位值,0 或 1

示例代码

基础用法

import { utils } from '@ray-js/panel-sdk';

const { getBitValue } = utils;

// 17 = 10001(2)
getBitValue(17, 0); // 1
getBitValue(17, 1); // 0
getBitValue(17, 4); // 1

changeBitValue(num: number, idx: number)

版本要求:
@ray-js/panel-sdk≥1.0.0

描述

翻转数字在二进制表示中指定位置的位值(0 变 1,1 变 0)

参数

参数类型必填说明
numnumber是源数字
idxnumber是位索引(从低位开始,0 为最低位)

返回值

类型:number
指定位翻转后的新数字

示例代码

基础用法

import { utils } from '@ray-js/panel-sdk';

const { changeBitValue } = utils;

// 17 = 10001(2)
changeBitValue(17, 0); // 16 (10000)
changeBitValue(17, 1); // 19 (10011)
changeBitValue(17, 4); // 1  (00001)

setBitValueWithOne(num: number, idx: number)

版本要求:
@ray-js/panel-sdk≥1.0.0

描述

将数字在二进制表示中指定位置的位值设为 1

参数

参数类型必填说明
numnumber是源数字
idxnumber是位索引(从低位开始,0 为最低位)

返回值

类型:number
指定位设为 1 后的新数字

示例代码

基础用法

import { utils } from '@ray-js/panel-sdk';

const { setBitValueWithOne } = utils;

// 17 = 10001(2)
setBitValueWithOne(17, 0); // 17 (10001),原本就是 1
setBitValueWithOne(17, 1); // 19 (10011)
setBitValueWithOne(17, 5); // 49 (110001)

setBitValueWithZero(num: number, idx: number)

版本要求:
@ray-js/panel-sdk≥1.0.0

描述

将数字在二进制表示中指定位置的位值设为 0

参数

参数类型必填说明
numnumber是源数字
idxnumber是位索引(从低位开始,0 为最低位)

返回值

类型:number
指定位设为 0 后的新数字

示例代码

基础用法

import { utils } from '@ray-js/panel-sdk';

const { setBitValueWithZero } = utils;

// 17 = 10001(2)
setBitValueWithZero(17, 0); // 16 (10000)
setBitValueWithZero(17, 1); // 17 (10001),原本就是 0
setBitValueWithZero(17, 4); // 1  (00001)

numToHexString(num: number, padding?: number)

版本要求:
@ray-js/panel-sdk≥1.0.0

描述

将十进制数字转换为指定长度的十六进制字符串

参数

参数类型必填说明
numnumber是需要转换的十进制数字
paddingnumber否十六进制字符串的最小长度,默认为 2,不足前补零

返回值

类型:string
十六进制字符串

示例代码

基础用法

import { utils } from '@ray-js/panel-sdk';

const { numToHexString } = utils;

numToHexString(111);    // '6f'
numToHexString(15);     // '0f'
numToHexString(255, 4); // '00ff'

highLowToInt(high: number, low: number)

版本要求:
@ray-js/panel-sdk≥1.0.0

描述

将高低字节合并为一个整数

参数

参数类型必填说明
highnumber是高 8 位字节值
lownumber是低 8 位字节值

返回值

类型:number
合并后的整数值

示例代码

基础用法

import { utils } from '@ray-js/panel-sdk';

const { highLowToInt } = utils;

highLowToInt(11, 22); // 2838
highLowToInt(22, 11); // 5643
highLowToInt(1, 0);   // 256

add(number1: number, number2: number)

版本要求:
@ray-js/panel-sdk≥1.0.0

描述

精确计算两数相加,避免浮点数精度问题

参数

参数类型必填说明
number1number是第一个加数
number2number是第二个加数

返回值

类型:number
精确的相加结果

示例代码

基础用法

import { utils } from '@ray-js/panel-sdk';

const { add } = utils;

add(0.1, 0.2);   // 0.3(而非 0.30000000000000004)
add(1.005, 0.01); // 1.015

subtract(number1: number, number2: number)

版本要求:
@ray-js/panel-sdk≥1.0.0

描述

精确计算两数相减,避免浮点数精度问题

参数

参数类型必填说明
number1number是被减数
number2number是减数

返回值

类型:number
精确的相减结果

示例代码

基础用法

import { utils } from '@ray-js/panel-sdk';

const { subtract } = utils;

subtract(0.3, 0.1);   // 0.2(而非 0.19999999999999998)
subtract(1.005, 0.01); // 0.995