Exemple #1
0
        void ConvertFractionToInteger(MiniYamlNode node)
        {
            // Is the value a percentage or a 'real' float?
            var isPercentage = node.NodeValue <string>().Contains("%");

            if (isPercentage)
            {
                // Remove '%' first, then remove potential '.' and finally clamp to minimum of 1, unless the old value was really zero
                var oldValueAsString = node.NodeValue <string>().Split('%')[0];
                var oldValueWasZero  = oldValueAsString == "0";
                var newValue         = oldValueAsString.Split('.')[0];
                newValue = !oldValueWasZero && newValue == "0" ? "1" : newValue;

                node.ReplaceValue(newValue);
            }
            else
            {
                var oldValueAsFloat = node.NodeValue <float>();
                var oldValueWasZero = node.NodeValue <string>() == "0" || node.NodeValue <string>() == "0.0";
                var newValue        = (int)(oldValueAsFloat * 100);

                // Clamp to minimum of 1, unless the old value was really zero
                newValue = !oldValueWasZero && newValue == 0 ? 1 : newValue;

                node.ReplaceValue(newValue.ToString());
            }
        }