diff --git a/packages/loot-core/src/mocks/files/data-multi-decimal.ofx b/packages/loot-core/src/mocks/files/data-multi-decimal.ofx
new file mode 100644
index 0000000000000000000000000000000000000000..ea4901d36812ed956025126a7c49d5b504c2f859
--- /dev/null
+++ b/packages/loot-core/src/mocks/files/data-multi-decimal.ofx
@@ -0,0 +1,64 @@
+OFXHEADER:100
+DATA:OFXSGML
+VERSION:102
+SECURITY:NONE
+ENCODING:USASCII
+CHARSET:1252
+COMPRESSION:NONE
+OLDFILEUID:NONE
+NEWFILEUID:NONE
+
+<OFX>
+  <SIGNONMSGSRSV1>
+    <SONRS>
+      <STATUS>
+        <CODE>0
+        <SEVERITY>INFO
+      </STATUS>
+      <DTSERVER>20190124212851.000[0:UTC]
+      <LANGUAGE>ENG
+      <DTACCTUP>20190124212851.000[0:UTC]
+      <FI>
+        <ORG>Bank of America
+        <FID>5959
+      </FI>
+      <INTU.BID>6526
+      <INTU.USERID>jlongster03
+    </SONRS>
+  </SIGNONMSGSRSV1>
+  <BANKMSGSRSV1>
+    <STMTTRNRS>
+      <TRNUID>0
+      <STATUS>
+        <CODE>0
+        <SEVERITY>INFO
+      </STATUS>
+      <STMTRS>
+        <CURDEF>USD
+        <BANKACCTFROM>
+          <BANKID>012345678
+          <ACCTID>123456789123
+          <ACCTTYPE>CHECKING
+        </BANKACCTFROM>
+        <BANKTRANLIST>
+          <DTSTART>20190119120000
+          <DTEND>20190124120000
+          <STMTTRN>
+            <TRNTYPE>DEBIT
+            <DTPOSTED>20190123120000
+            <TRNAMT>-30.000
+            <FITID>00092990122-30.00019012312798.01
+            <NAME>PATIENT FIRST TOKEN 01/22 PURCHA
+          </STMTTRN>
+          <STMTTRN>
+            <TRNTYPE>DEBIT
+            <DTPOSTED>20190123120000
+            <TRNAMT>-3.77000
+            <FITID>00092990121-3.77019012312828.01
+            <NAME>STARBUCKS STORE 07604 01/21 PURC
+          </STMTTRN>
+        </BANKTRANLIST>
+      </STMTRS>
+    </STMTTRNRS>
+  </BANKMSGSRSV1>
+</OFX>
diff --git a/packages/loot-core/src/server/accounts/parse-file.test.ts b/packages/loot-core/src/server/accounts/parse-file.test.ts
index edd472d2ab0eb2c022533a19f7c25480b4519a54..345d098027e68e2fc92a61c354d165c8c3a384b4 100644
--- a/packages/loot-core/src/server/accounts/parse-file.test.ts
+++ b/packages/loot-core/src/server/accounts/parse-file.test.ts
@@ -84,6 +84,18 @@ describe('File import', () => {
     expect(await getTransactions('one')).toMatchSnapshot();
   }, 45000);
 
+  test('ofx import works with multiple decimals in amount', async () => {
+    const ofxFile = __dirname + '/../../mocks/files/data-multi-decimal.ofx';
+
+    const { transactions } = (await parseFile(ofxFile)) as {
+      transactions: { amount: number }[];
+    };
+
+    expect(transactions).toHaveLength(2);
+    expect(transactions[0].amount).toBe(-30.0);
+    expect(transactions[1].amount).toBe(-3.77);
+  }, 45000);
+
   test('ofx import works (credit card)', async () => {
     prefs.loadPrefs();
     await db.insertAccount({ id: 'one', name: 'one' });
diff --git a/packages/loot-core/src/server/accounts/parse-file.ts b/packages/loot-core/src/server/accounts/parse-file.ts
index ef7df445177ebcacbccc1e67f8ce41fba6eafd5d..03c34f076b539f08ae9b281542adfce71852c0ad 100644
--- a/packages/loot-core/src/server/accounts/parse-file.ts
+++ b/packages/loot-core/src/server/accounts/parse-file.ts
@@ -132,7 +132,7 @@ async function parseOFX(
     errors,
     transactions: data.transactions.map(trans => {
       return {
-        amount: trans.amount,
+        amount: Number(trans.amount),
         imported_id: trans.fitId,
         date: trans.date,
         payee_name: trans.name || (useMemoFallback ? trans.memo : null),
diff --git a/upcoming-release-notes/2421.md b/upcoming-release-notes/2421.md
new file mode 100644
index 0000000000000000000000000000000000000000..cf6ee5c5fb1b7eeb2c1a834206277d85f36521c1
--- /dev/null
+++ b/upcoming-release-notes/2421.md
@@ -0,0 +1,6 @@
+---
+category: Bugfix
+authors: [keriati]
+---
+
+Fix OFX import amount when more than 2 decimal places are provided