diff --git a/osu.Game/Overlays/Settings/Sections/Input/TabletAreaSelection.cs b/osu.Game/Overlays/Settings/Sections/Input/TabletAreaSelection.cs
index cd6554e52d..3b5190d13b 100644
--- a/osu.Game/Overlays/Settings/Sections/Input/TabletAreaSelection.cs
+++ b/osu.Game/Overlays/Settings/Sections/Input/TabletAreaSelection.cs
@@ -125,11 +125,11 @@ namespace osu.Game.Overlays.Settings.Sections.Input
             {
                 usableAreaContainer.ResizeTo(val.NewValue, 100, Easing.OutQuint);
 
-                int x = (int)val.NewValue.X;
-                int y = (int)val.NewValue.Y;
+                int x = (int)Math.Round(val.NewValue.X);
+                int y = (int)Math.Round(val.NewValue.Y);
                 int commonDivider = greatestCommonDivider(x, y);
 
-                usableAreaText.Text = $"{(float)x / commonDivider}:{(float)y / commonDivider}";
+                usableAreaText.Text = $"{x / commonDivider}:{y / commonDivider}";
                 checkBounds();
             }, true);
 
@@ -212,17 +212,17 @@ namespace osu.Game.Overlays.Settings.Sections.Input
         {
             base.Update();
 
-            if (!(tablet.Value?.Size is Vector2 size))
-                return;
+            if (tablet.Value?.Size is Vector2 size)
+            {
+                float maxDimension = size.LengthFast;
 
-            float maxDimension = size.LengthFast;
+                float fitX = maxDimension / (DrawWidth - Padding.Left - Padding.Right);
+                float fitY = maxDimension / DrawHeight;
 
-            float fitX = maxDimension / (DrawWidth - Padding.Left - Padding.Right);
-            float fitY = maxDimension / DrawHeight;
+                float adjust = MathF.Max(fitX, fitY);
 
-            float adjust = MathF.Max(fitX, fitY);
-
-            tabletContainer.Scale = new Vector2(1 / adjust);
+                tabletContainer.Scale = new Vector2(1 / adjust);
+            }
         }
     }
 }
diff --git a/osu.Game/Overlays/Settings/Sections/Input/TabletSettings.cs b/osu.Game/Overlays/Settings/Sections/Input/TabletSettings.cs
index 59c7ff04a2..8f92bb16f5 100644
--- a/osu.Game/Overlays/Settings/Sections/Input/TabletSettings.cs
+++ b/osu.Game/Overlays/Settings/Sections/Input/TabletSettings.cs
@@ -325,7 +325,7 @@ namespace osu.Game.Overlays.Settings.Sections.Input
         {
             aspectLock.Value = false;
 
-            int proposedHeight = getHeight(sizeX.Value, aspectRatio);
+            float proposedHeight = getHeight(sizeX.Value, aspectRatio);
 
             if (proposedHeight < sizeY.MaxValue)
                 sizeY.Value = proposedHeight;
@@ -342,8 +342,8 @@ namespace osu.Game.Overlays.Settings.Sections.Input
 
         private float currentAspectRatio => sizeX.Value / sizeY.Value;
 
-        private static int getHeight(float width, float aspectRatio) => (int)Math.Round(width / aspectRatio);
+        private static float getHeight(float width, float aspectRatio) => (float)Math.Round(width / aspectRatio);
 
-        private static int getWidth(float height, float aspectRatio) => (int)Math.Round(height * aspectRatio);
+        private static float getWidth(float height, float aspectRatio) => (float)Math.Round(height * aspectRatio);
     }
 }