Skip to content

Commit 777ce98

Browse files
author
Singh
committed
Float Issue fix changes
1 parent e3873eb commit 777ce98

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

packages/react-form-renderer/src/tests/form-renderer/data-types.test.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,14 @@ describe('data types', () => {
9292
it('converts a negative integer', () => {
9393
expect(convertType(dataTypes.INTEGER, '-12132')).toEqual(-12132);
9494
});
95+
96+
it('converts a floating number with nothing preceding decimal', () => {
97+
expect(convertType(dataTypes.FLOAT, '123.')).toEqual('123.');
98+
});
99+
100+
it('converts a floating number', () => {
101+
expect(convertType(dataTypes.FLOAT, '123.0')).toEqual(123.0);
102+
});
95103
});
96104
});
97105
});

packages/react-form-renderer/src/use-field-api/convert-type.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,15 @@ const castToBoolean = (value) => {
1818
*/
1919
const canBeConvertedToNumber = (value) => !isNaN(Number(value)) && value !== '';
2020

21+
/**
22+
* Check if the value can be converted to float
23+
* @param {Any} value value to be checked
24+
*/
25+
const canBeConvertedToFloat = (value) => {
26+
if (typeof value == 'string' && value.endsWith('.')) return false;
27+
return canBeConvertedToNumber(value);
28+
};
29+
2130
/**
2231
* Changes the value type
2332
* @param {FieldDataTypes} dataType type for value conversion
@@ -28,7 +37,7 @@ const convertType = (dataType, value) => {
2837
case dataTypes.INTEGER:
2938
return canBeConvertedToNumber(value) ? parseInt(value) : value;
3039
case dataTypes.FLOAT:
31-
return canBeConvertedToNumber(value) ? parseFloat(value) : value;
40+
return canBeConvertedToFloat(value) ? parseFloat(value) : value;
3241
case dataTypes.NUMBER:
3342
return canBeConvertedToNumber(value) ? Number(value) : value;
3443
case dataTypes.BOOLEAN:

0 commit comments

Comments
 (0)