@rbxts/abbreviate
v3.0.4
Published
A lightweight number abbreviator
Downloads
41
Maintainers
Readme
@rbxts/abbreviate
Installation:
npm i @rbxts/abbreviate
Example Usage
import Abbreviator from "@rbxts/abbreviate";
const abbreviator = new Abbreviator();
abbreviator.setSetting('suffixTable', ['k', 'm', 'b']);
abbreviator.setSetting('decimalPlaces', 2);
print(abbreviator.stringToNumber('500')) // 500
print(abbreviator.stringToNumber('5k')) // 5000
print(abbreviator.stringToNumber('5m')) // 5000000
print(abbreviator.stringToNumber('1.23456m')) // 1234560
print(abbreviator.numberToString(999)) // 999
print(abbreviator.numberToString(1000)) // 1.00k
print(abbreviator.numberToString(1000000)) // 1.00m
print(abbreviator.numberToString(1234567)) // 1.23m
Settings
The possible settings you can set are the following:
| Setting Name | Setting Value Type | Setting Description | Setting Default | Setting Example
|---|---|---|---|---|
| suffixTable | Array<string> | Sets the suffix table to be used when using numberToString
| here | ["k", "m", "b"] |
| decimalPlaces | number | Sets the amount of decimal places a number may have when using numberToString
| 2 | 4 |
| stripTrailingZeroes | boolean | Removes any extra zeroes after a decimal place that are dangling after numberToString
calls. E.g. "52506.004"
=> "5.2506k"
| false | true
Why make Abbreviator
a class?
You may want multiple abbreviators throughout your game with different settings, i.e. one module may want only 2 d.p. while another may want 0 d.p To solve this, abbreviate requires you to construct a new abbreviator. The settings of this abbreviator is independent of other abbreviators.
Changelog
3.0.3
- Fixed
stripTrailingZeroes
incorrectly showing asremoveDanglingZeroes
inREADME.md
3.0.2
- Added setting default and setting example for
stripTrailingZeroes
3.0.1
- Fixed
README.md
example being outdated - Added
Scyfren
to contributors
3.0.0
- Changed the method to create an abbreviator from
createAbbreviator()
toabbreviator.new()
(new Abbreviator()
in TypeScript) - Added option
stripTrailingZeroes
- Fixed some bugs regarding settings changes
- Slight speed improvements
2.7.3
- Updated
README.md
to usecreateAbbreviator()
2.7.2
- Refactored internal code to use less memory
2.7.1
- Fixed a case where numbers under 1000 would have their decimal places stripped (e.g.
1.05
would become1
,0.5
would become0
) - Added unit tests
- Made function calls safer (it now validates the type of the data you pass)
2.7.0
- Changed the method used in
numberToString
to be similar to Zombie Strike's for more accurate rounding.
2.6.3
- Fixed numbers under 1000 not being added to the return result in
numbersToSortedString
.
2.6.2
- Removed prints in
numbersToSortedString
.
2.6.1
- Updated README.md.
2.6.0
- Created
numbersToSortedString
.
2.5.0
- Fixed a bug with
commify
function erroring.
2.4.0
- Added
commify(num: number): string
to convert a string into a comma separated value.
2.3.4
- Fixed
stringToNumber
returningvoid
instead ofnumber
.
2.3.3
- Fixed numbers under 1000 not being decimal placed correctly when numberToString is called.
Credits
Kampfkarren - numberToString
method
Corecii - Help with numbersToSortedString
Scyfren - Help with stripTrailingZeroes