Moved the conversion of localized values to floats
authorAlexander Ebert <ebert@woltlab.com>
Wed, 9 Mar 2022 18:05:41 +0000 (19:05 +0100)
committerAlexander Ebert <ebert@woltlab.com>
Wed, 9 Mar 2022 18:05:41 +0000 (19:05 +0100)
wcfsetup/install/files/lib/system/option/FloatOptionType.class.php

index d7410a71a06a75d8477bd622a26b8dc1f27c7101..66925f17c9a39162209e7dcf06919574f0b92127 100644 (file)
@@ -35,11 +35,7 @@ class FloatOptionType extends TextOptionType
      */
     public function getData(Option $option, $newValue)
     {
-        $newValue = \str_replace(' ', '', $newValue);
-        $newValue = \str_replace(WCF::getLanguage()->get('wcf.global.thousandsSeparator'), '', $newValue);
-        $newValue = \str_replace(WCF::getLanguage()->get('wcf.global.decimalPoint'), '.', $newValue);
-
-        return \floatval($newValue);
+        return $this->toFloat($newValue);
     }
 
     /**
@@ -53,4 +49,16 @@ class FloatOptionType extends TextOptionType
 
         return ($value1 > $value2) ? 1 : -1;
     }
+
+    /**
+     * Converts a localized string value into a float value.
+     */
+    private function toFloat($value): float
+    {
+        $value = \str_replace(' ', '', $value);
+        $value = \str_replace(WCF::getLanguage()->get('wcf.global.thousandsSeparator'), '', $value);
+        $value = \str_replace(WCF::getLanguage()->get('wcf.global.decimalPoint'), '.', $value);
+
+        return \floatval($value);
+    }
 }