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()); } }