Skip to content

Commit e19fe8d

Browse files
authored
Merge pull request #1323 from jspannu919/float_issue_fix
Float Issue fix
2 parents b0954e8 + 47a1eb3 commit e19fe8d

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-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: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,18 @@ 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('.')) {
27+
return false;
28+
}
29+
30+
return canBeConvertedToNumber(value);
31+
};
32+
2133
/**
2234
* Changes the value type
2335
* @param {FieldDataTypes} dataType type for value conversion
@@ -28,7 +40,7 @@ const convertType = (dataType, value) => {
2840
case dataTypes.INTEGER:
2941
return canBeConvertedToNumber(value) ? parseInt(value) : value;
3042
case dataTypes.FLOAT:
31-
return canBeConvertedToNumber(value) ? parseFloat(value) : value;
43+
return canBeConvertedToFloat(value) ? parseFloat(value) : value;
3244
case dataTypes.NUMBER:
3345
return canBeConvertedToNumber(value) ? Number(value) : value;
3446
case dataTypes.BOOLEAN:

0 commit comments

Comments
 (0)