diff --git a/app/assets/javascripts/discourse/lib/formatter.js.es6 b/app/assets/javascripts/discourse/lib/formatter.js.es6
index dcce95ca999..76e2ab44eb3 100644
--- a/app/assets/javascripts/discourse/lib/formatter.js.es6
+++ b/app/assets/javascripts/discourse/lib/formatter.js.es6
@@ -311,7 +311,7 @@ export function number(val) {
     formattedNumber = I18n.toNumber(val / 1000000, {precision: 1});
     return I18n.t("number.short.millions", {number: formattedNumber});
   } else if (val > 99999) {
-    formattedNumber = I18n.toNumber(val / 1000, {precision: 0});
+    formattedNumber = I18n.toNumber(Math.floor(val / 1000), {precision: 0});
     return I18n.t("number.short.thousands", {number: formattedNumber});
   } else if (val > 999) {
     formattedNumber = I18n.toNumber(val / 1000, {precision: 1});
diff --git a/test/javascripts/lib/formatter-test.js.es6 b/test/javascripts/lib/formatter-test.js.es6
index 1d3d4e43fc1..ddb97c83ff9 100644
--- a/test/javascripts/lib/formatter-test.js.es6
+++ b/test/javascripts/lib/formatter-test.js.es6
@@ -211,6 +211,8 @@ QUnit.test("number", assert => {
   assert.equal(number(NaN), "0", "it returns 0 for NaN");
   assert.equal(number(3333), "3.3k", "it abbreviates thousands");
   assert.equal(number(2499999), "2.5M", "it abbreviates millions");
+  assert.equal(number(1000000), "1.0M", "it abbreviates a million");
+  assert.equal(number(999999), "999k", "it abbreviates hundreds of thousands");
 });
 
 QUnit.test("durationTiny", assert => {