diff --git a/src-ui/src/app/components/common/input/number/number.component.spec.ts b/src-ui/src/app/components/common/input/number/number.component.spec.ts index 889aa2198..9024614bb 100644 --- a/src-ui/src/app/components/common/input/number/number.component.spec.ts +++ b/src-ui/src/app/components/common/input/number/number.component.spec.ts @@ -60,4 +60,9 @@ describe('NumberComponent', () => { component.writeValue(11.1) expect(component.value).toEqual(11.1) }) + + it('should support scientific notation', () => { + component.writeValue(1.23456789e8) + expect(component.value).toEqual(123456789) + }) }) diff --git a/src-ui/src/app/components/common/input/number/number.component.ts b/src-ui/src/app/components/common/input/number/number.component.ts index 0b113a4de..6675e4498 100644 --- a/src-ui/src/app/components/common/input/number/number.component.ts +++ b/src-ui/src/app/components/common/input/number/number.component.ts @@ -37,7 +37,8 @@ export class NumberComponent extends AbstractInputComponent<number> { } writeValue(newValue: any): void { - if (this.step === 1) newValue = parseInt(newValue, 10) + if (this.step === 1 && newValue?.toString().indexOf('e') === -1) + newValue = parseInt(newValue, 10) if (this.step === 0.01) newValue = parseFloat(newValue).toFixed(2) super.writeValue(newValue) }