private static string FormatDecimal(LexoDecimal dec) { var formatVal = dec.Format(); var val = new StringBuilder(formatVal); var partialIndex = formatVal.IndexOf(NumeralSystem.GetRadixPointChar()); var zero = NumeralSystem.ToChar(0); if (partialIndex < 0) { partialIndex = formatVal.Length; val.Append(NumeralSystem.GetRadixPointChar()); } while (partialIndex < 6) { val.Insert(0, zero); ++partialIndex; } while (val[val.Length - 1] == zero) { val.Length = val.Length - 1; } return(val.ToString()); }
public static LexoDecimal Parse(string str, ILexoNumeralSystem system) { var partialIndex = str.IndexOf(system.GetRadixPointChar()); if (str.LastIndexOf(system.GetRadixPointChar()) != partialIndex) { throw new FormatException("More than one " + system.GetRadixPointChar()); } if (partialIndex < 0) { return(Make(LexoInteger.Parse(str, system), 0)); } var intStr = str.Substring(0, partialIndex) + str.Substring(partialIndex + 1); return(Make(LexoInteger.Parse(intStr, system), str.Length - 1 - partialIndex)); }