diff --git a/django/core/paginator.py b/django/core/paginator.py
index bc41ddb914..4af80a26f2 100644
--- a/django/core/paginator.py
+++ b/django/core/paginator.py
@@ -35,6 +35,8 @@ class Paginator:
     def validate_number(self, number):
         """Validate the given 1-based page number."""
         try:
+            if isinstance(number, float) and not number.is_integer():
+                raise ValueError
             number = int(number)
         except (TypeError, ValueError):
             raise PageNotAnInteger(_('That page number is not an integer'))
diff --git a/tests/pagination/tests.py b/tests/pagination/tests.py
index 5c2e7db197..8be81240e8 100644
--- a/tests/pagination/tests.py
+++ b/tests/pagination/tests.py
@@ -120,6 +120,8 @@ class PaginationTests(unittest.TestCase):
             paginator.validate_number(None)
         with self.assertRaises(PageNotAnInteger):
             paginator.validate_number('x')
+        with self.assertRaises(PageNotAnInteger):
+            paginator.validate_number(1.2)
 
     def test_float_integer_page(self):
         paginator = Paginator([1, 2, 3], 2)