static bool TryFormatCore(ulong value, Span <byte> buffer, out int bytesWritten, TextFormat format, SymbolTable symbolTable) { symbolTable = symbolTable ?? SymbolTable.InvariantUtf8; if (symbolTable == SymbolTable.InvariantUtf8) { return(TryFormatInvariantUtf8(value, buffer, out bytesWritten, format)); } else if (symbolTable == SymbolTable.InvariantUtf16) { return(TryFormatInvariantUtf16(value, buffer, out bytesWritten, format)); } else { return(IntegerFormatter.TryFormatUInt64(value, buffer, out bytesWritten, format, symbolTable)); } }
static bool TryFormatCore(ulong value, Span <byte> buffer, out int bytesWritten, TextFormat format, TextEncoder encoder) { encoder = encoder == null ? TextEncoder.Utf8 : encoder; if (encoder.IsInvariantUtf8) { return(TryFormatInvariantUtf8(value, buffer, out bytesWritten, format)); } else if (encoder.IsInvariantUtf16) { return(TryFormatInvariantUtf16(value, buffer, out bytesWritten, format)); } else { return(IntegerFormatter.TryFormatUInt64(value, buffer, out bytesWritten, format, encoder)); } }
static bool TryFormatCore(long value, ulong mask, Span <byte> buffer, out int bytesWritten, TextFormat format, TextEncoder encoder) { encoder = encoder == null ? TextEncoder.Utf8 : encoder; if (format.IsDefault || format.Symbol == 'g') { format.Symbol = 'G'; } if (encoder.IsInvariantUtf8) { return(TryFormatInvariantUtf8(value, mask, buffer, out bytesWritten, format)); } else if (encoder.IsInvariantUtf16) { return(TryFormatInvariantUtf16(value, mask, buffer, out bytesWritten, format)); } else { return(IntegerFormatter.TryFormatInt64(value, mask, buffer, out bytesWritten, format, encoder)); } }
static bool TryFormatCore(long value, ulong mask, Span <byte> buffer, out int bytesWritten, TextFormat format, SymbolTable symbolTable) { symbolTable = symbolTable ?? SymbolTable.InvariantUtf8; if (format.IsDefault || format.Symbol == 'g') { format.Symbol = 'G'; } if (symbolTable == SymbolTable.InvariantUtf8) { return(TryFormatInvariantUtf8(value, mask, buffer, out bytesWritten, format)); } else if (symbolTable == SymbolTable.InvariantUtf16) { return(TryFormatInvariantUtf16(value, mask, buffer, out bytesWritten, format)); } else { return(IntegerFormatter.TryFormatInt64(value, mask, buffer, out bytesWritten, format, symbolTable)); } }
public static FormatterBase Create(string format) { if (TimeSpanFormatter.CanFormat(format)) { return(new TimeSpanFormatter(format)); } if (TimeStampFormatter.CanFormat(format)) { return(new TimeStampFormatter(format)); } if (DecibelFormatter.CanFormat(format)) { return(new DecibelFormatter(format)); } if (FloatFormatter.CanFormat(format)) { return(new FloatFormatter(format)); } if (IntegerFormatter.CanFormat(format)) { return(new IntegerFormatter(format)); } return(new StringFormatter(format)); }
public void FormatTest() { CultureInfo altCulture = CultureInfo.CreateSpecificCulture("en-US"); altCulture.NumberFormat.NegativeSign = "!"; altCulture.NumberFormat.NumberGroupSeparator = "#"; IntegerFormatter target = new IntegerFormatter(); Assert2.IsException(() => target.Format(null, 1, null), typeof(ArgumentException)); string result = target.Format("i", 1, null); Assert.AreEqual("1", result); result = target.Format("I", 1, null); Assert.AreEqual("1", result); result = target.Format("i", 1000000, null); Assert.AreEqual("1,000,000", result); result = target.Format("i,", 1000000, null); Assert.AreEqual("1,000,000", result); result = target.Format("i-,", 1000000, null); Assert.AreEqual("1000000", result); result = target.Format("I", 1000000, null); Assert.AreEqual("1,000,000", result); result = target.Format("I,", 1000000, null); Assert.AreEqual("1,000,000", result); result = target.Format("I-,", 1000000, null); Assert.AreEqual("1000000", result); result = target.Format("i", -1000000, null); Assert.AreEqual("-1,000,000", result); result = target.Format("i-,", -1000000, null); Assert.AreEqual("-1000000", result); result = target.Format("I", 1, null); Assert.AreEqual("1", result); result = target.Format("I", 1000000, null); Assert.AreEqual("1,000,000", result); result = target.Format("I", -1000000, null); Assert.AreEqual("-1,000,000", result); result = target.Format("I", -1000000, altCulture); Assert.AreEqual("!1#000#000", result); result = target.Format("i,", -1000000, altCulture); Assert.AreEqual("!1#000#000", result); result = target.Format("i-,", -1000000, altCulture); Assert.AreEqual("!1000000", result); result = target.Format("I3", 1, null); Assert.AreEqual("001", result); result = target.Format("I1", 1, null); Assert.AreEqual("1", result); result = target.Format("I2", 1, null); Assert.AreEqual("01", result); result = target.Format("I3", 100, null); Assert.AreEqual("100", result); result = target.Format("i3", 1000, null); Assert.AreEqual("1,000", result); result = target.Format("I10", 1234, null); Assert.AreEqual("000001,234", result); result = target.Format("I", 100.50, null); Assert.AreEqual("100", result); result = target.Format("I", 1000.5, null); Assert.AreEqual("1,000", result); result = target.Format("I", 1000.6, null); // conversion from decimal using Convert.ToInt64 performs rounding. Assert.AreEqual("1,001", result); }