@sankhyalabs/core 4.0.0 → 4.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
- [getValueOrDefault](NumberUtils.md#getvalueordefault)
|
|
18
18
|
- [getValueOrZero](NumberUtils.md#getvalueorzero)
|
|
19
19
|
- [keepOnlyDecimalSeparator](NumberUtils.md#keeponlydecimalseparator)
|
|
20
|
+
- [round](NumberUtils.md#round)
|
|
20
21
|
- [stringToNumber](NumberUtils.md#stringtonumber)
|
|
21
22
|
|
|
22
23
|
## Constructors
|
|
@@ -193,6 +194,50 @@ src/utils/NumberUtils.ts:140
|
|
|
193
194
|
|
|
194
195
|
___
|
|
195
196
|
|
|
197
|
+
### round
|
|
198
|
+
|
|
199
|
+
▸ `Static` **round**(`value`, `decimals?`): `number`
|
|
200
|
+
|
|
201
|
+
Realiza o arredondamento de casas decimais de um numero.
|
|
202
|
+
|
|
203
|
+
**`Example`**
|
|
204
|
+
|
|
205
|
+
```ts
|
|
206
|
+
@ (100.12) | 100.12
|
|
207
|
+
@ (100,12) | NaN
|
|
208
|
+
|
|
209
|
+
@ ("100.12", 1) | 100.1
|
|
210
|
+
@ ("100.12", 2) | 100.12
|
|
211
|
+
@ ("100.12", 3) | 100.12
|
|
212
|
+
|
|
213
|
+
@ ("100.15", 1) | 100.2
|
|
214
|
+
@ ("100.15", 2) | 100.15
|
|
215
|
+
@ ("100.15", 3) | 100.15
|
|
216
|
+
|
|
217
|
+
@ ("100.16", 1) | 100.2
|
|
218
|
+
@ ("100.16", 2) | 100.16
|
|
219
|
+
@ ("100.16", 3) | 100.16
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
#### Parameters
|
|
223
|
+
|
|
224
|
+
| Name | Type | Default value | Description |
|
|
225
|
+
| :------ | :------ | :------ | :------ |
|
|
226
|
+
| `value` | `number` | `undefined` | Numeral a ser arredondado. |
|
|
227
|
+
| `decimals` | `number` | `2` | Quantidade de casas decimais ussada no arredondamento. |
|
|
228
|
+
|
|
229
|
+
#### Returns
|
|
230
|
+
|
|
231
|
+
`number`
|
|
232
|
+
|
|
233
|
+
- O próprio numeral arredondado com a quantidade de casas decimais do argumento decimals.
|
|
234
|
+
|
|
235
|
+
#### Defined in
|
|
236
|
+
|
|
237
|
+
src/utils/NumberUtils.ts:237
|
|
238
|
+
|
|
239
|
+
___
|
|
240
|
+
|
|
196
241
|
### stringToNumber
|
|
197
242
|
|
|
198
243
|
▸ `Static` **stringToNumber**(`value`): `number`
|
|
@@ -75,4 +75,29 @@ export declare class NumberUtils {
|
|
|
75
75
|
* @returns - O próprio numeral passado. Caso esse seja inválido retorna zero.
|
|
76
76
|
*/
|
|
77
77
|
static getValueOrZero: (value: any) => number;
|
|
78
|
+
/**
|
|
79
|
+
* Realiza o arredondamento de casas decimais de um numero.
|
|
80
|
+
*
|
|
81
|
+
* @param value - Numeral a ser arredondado.
|
|
82
|
+
* @param decimals - Quantidade de casas decimais ussada no arredondamento.
|
|
83
|
+
*
|
|
84
|
+
* @returns - O próprio numeral arredondado com a quantidade de casas decimais do argumento decimals.
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* @ (100.12) | 100.12
|
|
88
|
+
* @ (100,12) | NaN
|
|
89
|
+
|
|
90
|
+
* @ ("100.12", 1) | 100.1
|
|
91
|
+
* @ ("100.12", 2) | 100.12
|
|
92
|
+
* @ ("100.12", 3) | 100.12
|
|
93
|
+
|
|
94
|
+
* @ ("100.15", 1) | 100.2
|
|
95
|
+
* @ ("100.15", 2) | 100.15
|
|
96
|
+
* @ ("100.15", 3) | 100.15
|
|
97
|
+
|
|
98
|
+
* @ ("100.16", 1) | 100.2
|
|
99
|
+
* @ ("100.16", 2) | 100.16
|
|
100
|
+
* @ ("100.16", 3) | 100.16
|
|
101
|
+
*/
|
|
102
|
+
static round(value: number, decimals?: number): number;
|
|
78
103
|
}
|
|
@@ -4,6 +4,34 @@ const NUMBERINPUTS_REGEX_SCIENTIFIC_PARTS = /^([+-])?(\d+).?(\d*)[eE]([-+]?\d+)$
|
|
|
4
4
|
* `NumberUtils`: Utilizado para manipulação de numerais.
|
|
5
5
|
*/
|
|
6
6
|
export class NumberUtils {
|
|
7
|
+
/**
|
|
8
|
+
* Realiza o arredondamento de casas decimais de um numero.
|
|
9
|
+
*
|
|
10
|
+
* @param value - Numeral a ser arredondado.
|
|
11
|
+
* @param decimals - Quantidade de casas decimais ussada no arredondamento.
|
|
12
|
+
*
|
|
13
|
+
* @returns - O próprio numeral arredondado com a quantidade de casas decimais do argumento decimals.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* @ (100.12) | 100.12
|
|
17
|
+
* @ (100,12) | NaN
|
|
18
|
+
|
|
19
|
+
* @ ("100.12", 1) | 100.1
|
|
20
|
+
* @ ("100.12", 2) | 100.12
|
|
21
|
+
* @ ("100.12", 3) | 100.12
|
|
22
|
+
|
|
23
|
+
* @ ("100.15", 1) | 100.2
|
|
24
|
+
* @ ("100.15", 2) | 100.15
|
|
25
|
+
* @ ("100.15", 3) | 100.15
|
|
26
|
+
|
|
27
|
+
* @ ("100.16", 1) | 100.2
|
|
28
|
+
* @ ("100.16", 2) | 100.16
|
|
29
|
+
* @ ("100.16", 3) | 100.16
|
|
30
|
+
*/
|
|
31
|
+
static round(value, decimals = 2) {
|
|
32
|
+
const decimalNumber = new Number(value + 'e' + decimals);
|
|
33
|
+
return Number(Math.round(decimalNumber) + 'e-' + decimals);
|
|
34
|
+
}
|
|
7
35
|
}
|
|
8
36
|
/**
|
|
9
37
|
* Converte o dado numérico de string para number.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumberUtils.js","sourceRoot":"","sources":["../../src/utils/NumberUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,mCAAmC,GAAW,qCAAqC,CAAC;AAE1F;;GAEG;AACH,MAAM,OAAO,WAAW;;
|
|
1
|
+
{"version":3,"file":"NumberUtils.js","sourceRoot":"","sources":["../../src/utils/NumberUtils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/utils/NumberUtils.ts
CHANGED
|
@@ -209,4 +209,33 @@ export class NumberUtils {
|
|
|
209
209
|
static getValueOrZero = (value: any): number => {
|
|
210
210
|
return NumberUtils.getValueOrDefault(value, 0);
|
|
211
211
|
}
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* Realiza o arredondamento de casas decimais de um numero.
|
|
215
|
+
*
|
|
216
|
+
* @param value - Numeral a ser arredondado.
|
|
217
|
+
* @param decimals - Quantidade de casas decimais ussada no arredondamento.
|
|
218
|
+
*
|
|
219
|
+
* @returns - O próprio numeral arredondado com a quantidade de casas decimais do argumento decimals.
|
|
220
|
+
*
|
|
221
|
+
* @example
|
|
222
|
+
* @ (100.12) | 100.12
|
|
223
|
+
* @ (100,12) | NaN
|
|
224
|
+
|
|
225
|
+
* @ ("100.12", 1) | 100.1
|
|
226
|
+
* @ ("100.12", 2) | 100.12
|
|
227
|
+
* @ ("100.12", 3) | 100.12
|
|
228
|
+
|
|
229
|
+
* @ ("100.15", 1) | 100.2
|
|
230
|
+
* @ ("100.15", 2) | 100.15
|
|
231
|
+
* @ ("100.15", 3) | 100.15
|
|
232
|
+
|
|
233
|
+
* @ ("100.16", 1) | 100.2
|
|
234
|
+
* @ ("100.16", 2) | 100.16
|
|
235
|
+
* @ ("100.16", 3) | 100.16
|
|
236
|
+
*/
|
|
237
|
+
static round(value: number, decimals: number = 2):number {
|
|
238
|
+
const decimalNumber:number = (new Number(value +'e' + decimals) as number);
|
|
239
|
+
return Number(Math.round(decimalNumber)+ 'e-' + decimals);
|
|
240
|
+
}
|
|
212
241
|
}
|
|
@@ -153,5 +153,27 @@ describe('StringUtils', function () {
|
|
|
153
153
|
})
|
|
154
154
|
|
|
155
155
|
});
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
const testCasesTo_round = [
|
|
159
|
+
{ decimal: undefined, inputValue: 100.12, outPutValue: 100.12 },
|
|
160
|
+
{ decimal: 1, inputValue: 100.12, outPutValue: 100.1 },
|
|
161
|
+
{ decimal: 2, inputValue: 100.12, outPutValue: 100.12 },
|
|
162
|
+
{ decimal: 3, inputValue: 100.12, outPutValue: 100.12 },
|
|
163
|
+
{ decimal: 1, inputValue: 100.15, outPutValue: 100.2 },
|
|
164
|
+
{ decimal: 2, inputValue: 100.15, outPutValue: 100.15 },
|
|
165
|
+
{ decimal: 3, inputValue: 100.15, outPutValue: 100.15 },
|
|
166
|
+
{ decimal: 1, inputValue: 100.16, outPutValue: 100.2 },
|
|
167
|
+
{ decimal: 2, inputValue: 100.16, outPutValue: 100.16 },
|
|
168
|
+
{ decimal: 3, inputValue: 100.16, outPutValue: 100.16 },
|
|
169
|
+
]
|
|
170
|
+
|
|
171
|
+
it('format round number', function () {
|
|
172
|
+
let result: number;
|
|
173
|
+
testCasesTo_round.forEach(e => {
|
|
174
|
+
result = NumberUtils.round(e.inputValue, e.decimal);
|
|
175
|
+
expect(result).toBe(e.outPutValue);
|
|
176
|
+
})
|
|
177
|
+
});
|
|
156
178
|
|
|
157
179
|
});
|