diff --git a/osu.Game.Tests/Visual/TestCaseSliderBarPercentage.cs b/osu.Game.Tests/Visual/TestCaseSliderBarPercentage.cs
index ce32dbe889..8a64f7c9a4 100644
--- a/osu.Game.Tests/Visual/TestCaseSliderBarPercentage.cs
+++ b/osu.Game.Tests/Visual/TestCaseSliderBarPercentage.cs
@@ -103,7 +103,7 @@ namespace osu.Game.Tests.Visual
         }
 
         private class TestSliderBar<T> : OsuSliderBar<T>
-            where T : struct, IEquatable<T>
+            where T : struct, IEquatable<T>, IComparable, IConvertible
         {
             public TestSliderBar()
             {
diff --git a/osu.Game.Tests/Visual/TestCaseSliderBarPrecision.cs b/osu.Game.Tests/Visual/TestCaseSliderBarPrecision.cs
index c4b3a63bf2..af2b9be351 100644
--- a/osu.Game.Tests/Visual/TestCaseSliderBarPrecision.cs
+++ b/osu.Game.Tests/Visual/TestCaseSliderBarPrecision.cs
@@ -152,7 +152,7 @@ namespace osu.Game.Tests.Visual
         }
 
         private class TestSliderBar<T> : OsuSliderBar<T>
-            where T : struct, IEquatable<T>
+            where T : struct, IEquatable<T>, IComparable, IConvertible
         {
             public TestSliderBar()
             {
diff --git a/osu.Game/Graphics/UserInterface/OsuSliderBar.cs b/osu.Game/Graphics/UserInterface/OsuSliderBar.cs
index e3d9a89bf7..d42efe6678 100644
--- a/osu.Game/Graphics/UserInterface/OsuSliderBar.cs
+++ b/osu.Game/Graphics/UserInterface/OsuSliderBar.cs
@@ -18,7 +18,7 @@ using osu.Framework.Graphics.Shapes;
 namespace osu.Game.Graphics.UserInterface
 {
     public class OsuSliderBar<T> : SliderBar<T>, IHasTooltip, IHasAccentColour
-        where T : struct, IEquatable<T>
+        where T : struct, IEquatable<T>, IComparable, IConvertible
     {
         private SampleChannel sample;
         private double lastSampleTime;
@@ -69,7 +69,7 @@ namespace osu.Game.Graphics.UserInterface
                 if (bindableInt != null)
                     return bindableInt.Value.ToString("N0");
 
-                return Current.Value.ToString();
+                return Current.Value.ToString(CultureInfo.InvariantCulture);
             }
         }
 
diff --git a/osu.Game/Overlays/Settings/SettingsSlider.cs b/osu.Game/Overlays/Settings/SettingsSlider.cs
index 43f1fa6a02..56aa77a24f 100644
--- a/osu.Game/Overlays/Settings/SettingsSlider.cs
+++ b/osu.Game/Overlays/Settings/SettingsSlider.cs
@@ -10,12 +10,12 @@ using osu.Game.Graphics.UserInterface;
 namespace osu.Game.Overlays.Settings
 {
     public class SettingsSlider<T> : SettingsSlider<T, OsuSliderBar<T>>
-        where T : struct, IEquatable<T>
+        where T : struct, IEquatable<T>, IComparable, IConvertible
     {
     }
 
     public class SettingsSlider<T, U> : SettingsItem<T>
-        where T : struct, IEquatable<T>
+        where T : struct, IEquatable<T>, IComparable, IConvertible
         where U : OsuSliderBar<T>, new()
     {
         protected override Drawable CreateControl() => new U
diff --git a/osu.Game/Screens/Play/ReplaySettings/ReplaySliderBar.cs b/osu.Game/Screens/Play/ReplaySettings/ReplaySliderBar.cs
index e6e909183d..724f28dadf 100644
--- a/osu.Game/Screens/Play/ReplaySettings/ReplaySliderBar.cs
+++ b/osu.Game/Screens/Play/ReplaySettings/ReplaySliderBar.cs
@@ -11,7 +11,7 @@ using osu.Game.Overlays.Settings;
 namespace osu.Game.Screens.Play.ReplaySettings
 {
     public class ReplaySliderBar<T> : SettingsSlider<T>
-        where T : struct, IEquatable<T>
+        where T : struct, IEquatable<T>, IComparable, IConvertible
     {
         protected override Drawable CreateControl() => new Sliderbar
         {