diff --git a/frontend/src/metabase/visualizations/lib/apply_axis.js b/frontend/src/metabase/visualizations/lib/apply_axis.js
index adb76d687b9c8941a1eb7eb0e86c80b56e90968f..f4344a0562cb78a3bf6d1f0e5a3d2db806861229 100644
--- a/frontend/src/metabase/visualizations/lib/apply_axis.js
+++ b/frontend/src/metabase/visualizations/lib/apply_axis.js
@@ -352,7 +352,10 @@ export function applyChartOrdinalXAxis(
 // The tolerance is arbitrarily set to one millionth of the yExtent.
 const TOLERANCE_TO_Y_EXTENT = 1e6;
 export function maybeRoundValueToZero(value, [yMin, yMax]) {
-  const tolerance = Math.abs(yMax - yMin) / TOLERANCE_TO_Y_EXTENT;
+  const tolerance =
+    yMin !== yMax
+      ? Math.abs(yMax - yMin) / TOLERANCE_TO_Y_EXTENT
+      : 1 / TOLERANCE_TO_Y_EXTENT;
   return Math.abs(value) < tolerance ? 0 : value;
 }
 
@@ -490,7 +493,8 @@ export function getYValueFormatter(chart, series, yExtent) {
     const metricColumn = series[seriesIndex].data.cols[1];
     const columnSettings = chart.settings.column(metricColumn);
     const columnExtent = options.extent ?? yExtent;
-    const roundedValue = maybeRoundValueToZero(value, columnExtent);
+    const roundedValue =
+      value === null ? "" : maybeRoundValueToZero(value, columnExtent);
     return formatValue(roundedValue, { ...columnSettings, ...options });
   };
 }
diff --git a/frontend/src/metabase/visualizations/lib/apply_axis.unit.spec.js b/frontend/src/metabase/visualizations/lib/apply_axis.unit.spec.js
index 331940989e62a02b52e4f639aa4128eb6013d3d1..d07be26bba9acda360403c1a125d7f26f6606534 100644
--- a/frontend/src/metabase/visualizations/lib/apply_axis.unit.spec.js
+++ b/frontend/src/metabase/visualizations/lib/apply_axis.unit.spec.js
@@ -61,5 +61,11 @@ describe("visualization.lib.apply_axis", () => {
 
       expect(value).toBe(0.0000000000018);
     });
+
+    it("should work on single-value charts (where minExtent === maxExtent)", () => {
+      const value = maybeRoundValueToZero(0.0000000000018, [0.00001, 0.00001]);
+
+      expect(value).toBe(0);
+    });
   });
 });