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)
   }