// Format a percentage value. public static String FormatPercent (Object Expression, [Optional][DefaultValue(-1)] int NumDigitsAfterDecimal, [Optional][DefaultValue(TriState.UseDefault)] TriState IncludeLeadingDigit, [Optional][DefaultValue(TriState.UseDefault)] TriState UseParensForNegativeNumbers, [Optional][DefaultValue(TriState.UseDefault)] TriState GroupDigits) { NumberFormatInfo nfi = CultureInfo.CurrentCulture.NumberFormat; NumberFormatInfo nfiCurrent = nfi; if (NumDigitsAfterDecimal != -1) { nfi = (NumberFormatInfo)(nfi.Clone()); nfi.PercentDecimalDigits = NumDigitsAfterDecimal; } if (UseParensForNegativeNumbers != TriState.UseDefault) { if (nfi == nfiCurrent) { nfi = (NumberFormatInfo)(nfi.Clone()); } if (UseParensForNegativeNumbers == TriState.False) { nfi.PercentNegativePattern = 0; } else { nfi.PercentNegativePattern = 1; } } if (GroupDigits != TriState.UseDefault) { if (nfi == nfiCurrent) { nfi = (NumberFormatInfo)(nfi.Clone()); } if (GroupDigits == TriState.False) { nfi.PercentGroupSizes = new int [] { 0 }; } else { nfi.PercentGroupSizes = new int [] { 3 }; } } return(DoubleType.FromObject(Expression).ToString("P", nfi)); }
/// <summary> /// Refunds a payment /// </summary> /// <param name="refundPaymentRequest">Request</param> /// <returns>Result</returns> public RefundPaymentResult Refund(RefundPaymentRequest refundPaymentRequest) { var result = new RefundPaymentResult(); //result.AddError("Refund method not supported"); try { NumberFormatInfo nfi = CultureInfo.CurrentCulture.NumberFormat; nfi = (NumberFormatInfo)nfi.Clone(); nfi.CurrencySymbol = ""; var order = refundPaymentRequest.Order; string transactioncode = order.AuthorizationTransactionCode; string amount = string.Format(nfi, "{0:c}", refundPaymentRequest.AmountToRefund); Regex digitsOnly = new Regex(@"[^\d]"); amount = digitsOnly.Replace(amount, ""); string apiobject = "refunds"; string buildurl = _PayMillPaymentSettings.apiUrl + apiobject + "/" + transactioncode + "?amount=" + amount; string response = GetPMAPIResponse(buildurl, _PayMillPaymentSettings.privateKey); if (response != null) { } } catch (Exception ex) { _logger.InsertLog(Core.Domain.Logging.LogLevel.Error, ex.Message, ex.ToString()); result.AddError(ex.ToString()); } return(result); }
public static string FormatWithISOCurrencySymbol(Decimal amount, string ISOCurrencySymbol = null) { NumberFormatInfo numberFormat = null; if (ISOCurrencySymbol != null) { numberFormat = (from c in CultureInfo.GetCultures(CultureTypes.SpecificCultures) let r = new RegionInfo(c.LCID) where r != null && r.ISOCurrencySymbol.ToUpper() == ISOCurrencySymbol.ToUpper() select c).First().NumberFormat; } else { numberFormat = CultureInfo.CurrentCulture.NumberFormat; var specificCulture = CultureInfo.CreateSpecificCulture(CultureInfo.CurrentCulture.Name); ISOCurrencySymbol = new RegionInfo(specificCulture.LCID).ISOCurrencySymbol; } var numberFormatInfo = (NumberFormatInfo)numberFormat.Clone(); numberFormatInfo.CurrencySymbol = ISOCurrencySymbol.ToUpper(); // Add spaces between the figure and the currency //https://docs.microsoft.com/en-us/dotnet/api/system.globalization.numberformatinfo.currencypositivepattern?redirectedfrom=MSDN&view=netframework-4.7.2#System_Globalization_NumberFormatInfo_CurrencyPositivePattern //n $ numberFormatInfo.CurrencyPositivePattern = 3; //https://docs.microsoft.com/en-us/dotnet/api/system.globalization.numberformatinfo.currencynegativepattern?redirectedfrom=MSDN&view=netframework-4.7.2#System_Globalization_NumberFormatInfo_CurrencyNegativePattern //-n $ numberFormatInfo.CurrencyNegativePattern = 8; return(amount.ToString("C", numberFormatInfo)); }
public static NumberFormatInfo ReadOnly(NumberFormatInfo nfi) { NumberFormatInfo copy = (NumberFormatInfo)nfi.Clone(); copy.isReadOnly = true; return(copy); }
public bool PosTest1() { bool retVal = true; // Add your scenario description here TestLibrary.TestFramework.BeginScenario("PosTest1: Verify method Clone ."); try { NumberFormatInfo nfi1 = new NumberFormatInfo(); NumberFormatInfo nfi2 = (NumberFormatInfo)nfi1.Clone(); if (!nfi1.Equals(nfi2) && nfi1.GetHashCode() == nfi2.GetHashCode()) { TestLibrary.TestFramework.LogError("001.1", "Method Clone Err ."); retVal = false; } } catch (Exception e) { TestLibrary.TestFramework.LogError("001", "Unexpected exception: " + e); TestLibrary.TestFramework.LogInformation(e.StackTrace); retVal = false; } return(retVal); }
public static bool TryParse(string value, IFormatProvider formatProvider, out Money result) { if (value == null) { result = default; return(false); } NumberFormatInfo numberFormat = (NumberFormatInfo)formatProvider?.GetFormat(typeof(NumberFormatInfo)) ?? NumberFormatInfo.CurrentInfo; var currencyString = ExtractCurrencyString(value, numberFormat); if (!Currency.TryParse(currencyString, out Currency currency)) { currency = Currency.None; } numberFormat = (NumberFormatInfo)numberFormat.Clone(); numberFormat.CurrencySymbol = currency != Currency.None ? currencyString : "¤"; if (decimal.TryParse(value, NumberStyles.Currency, numberFormat, out decimal amount)) { result = new Money(amount, currency); return(true); } else { result = default; return(false); } }
public bool PosTest1() { bool retVal = true; // Add your scenario description here TestLibrary.TestFramework.BeginScenario("PosTest1: Verify method Clone ."); try { NumberFormatInfo nfi1 = new NumberFormatInfo(); NumberFormatInfo nfi2 = (NumberFormatInfo)nfi1.Clone(); if (!nfi1.Equals(nfi2) && nfi1.GetHashCode() == nfi2.GetHashCode()) { TestLibrary.TestFramework.LogError("001.1", "Method Clone Err ."); retVal = false; } } catch (Exception e) { TestLibrary.TestFramework.LogError("001", "Unexpected exception: " + e); TestLibrary.TestFramework.LogInformation(e.StackTrace); retVal = false; } return retVal; }
public static void Mainc(string[] args) { string prix = "1333,565 EUR"; var test = CultureInfo.CreateSpecificCulture("fr-CH"); test.NumberFormat.CurrencyDecimalSeparator = ","; test.NumberFormat.CurrencyGroupSeparator = ""; test.NumberFormat.CurrencySymbol = "FR"; var value = decimal.Parse(prix); var toto = (value).ToString("C", test.NumberFormat); //Console.WriteLine( toto); System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("fr-CH"); NumberFormatInfo nfi = System.Threading.Thread.CurrentThread.CurrentCulture.NumberFormat; var clone = (NumberFormatInfo)nfi.Clone(); clone.CurrencySymbol = "CHF"; clone.CurrencyPositivePattern = 2; // Change the negative currency pattern to <code><space><sign><value>. clone.CurrencyNegativePattern = 12; var p1 = 132.92m; var p2 = 133.00m; var p3 = -13.22m; var p4 = 133.47m; Console.WriteLine(LiteralDecimal(p1)); Console.WriteLine(LiteralDecimal(p2)); Console.WriteLine(LiteralDecimal(p3)); Console.WriteLine(LiteralDecimal(p4)); }
public static string DecimalToText(decimal value) { NumberFormatInfo format = FormatInfoLogic.Number; format = (NumberFormatInfo)format.Clone(); format.NumberDecimalDigits = 28; return(RuntimePlatformUtils.RemoveTrailingZeros(value.ToString("N", format), format)); }
private NumberFormatInfo CustomizeNumberFormat(NumberFormatInfo numberFormat) { var clone = (NumberFormatInfo)numberFormat.Clone(); clone.CurrencyDecimalDigits = _currency.DefaultDecimals; clone.CurrencySymbol = _currency.Symbol ?? _currency.Code ?? string.Empty; return(clone); }
public frmTransactions() { InitializeComponent(); this.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.DoubleBuffer, true); nfi = (NumberFormatInfo)nfi.Clone(); nfi.CurrencySymbol = ""; loadPage(); }
public static string FormatCurrency(decimal value) { NumberFormatInfo nfi = CultureInfo.CurrentCulture.NumberFormat; nfi = (NumberFormatInfo)nfi.Clone(); nfi.CurrencySymbol = ""; return(string.Format(nfi, "{0:c}", value)); }
static void Main() { NumberFormatInfo nfi = CultureInfo.CurrentCulture.NumberFormat; nfi = (NumberFormatInfo)nfi.Clone(); Console.WriteLine(string.Format(nfi, "{0:c}", 123.45m)); nfi.CurrencySymbol = ""; Console.WriteLine(string.Format(nfi, "{0:c}", 123.45m)); }
public static bool TryParse(string s, NumberStyles style, NumberFormatInfo numberFormatInfo, Currency currency, out Money?money) { var mergedNumberFormatInfo = (NumberFormatInfo)numberFormatInfo.Clone(); mergedNumberFormatInfo.CurrencySymbol = currency.Symbol; money = tryParse(s, style, mergedNumberFormatInfo, currency.IsoCode); return(money.HasValue); }
public frmTransactionsPayroll() { InitializeComponent(); //currency formatting nfi = (NumberFormatInfo)nfi.Clone(); nfi.CurrencySymbol = ""; loadPage(); }
public frmReportsTransactionQueries() { InitializeComponent(); //Load currency format nfi = (NumberFormatInfo)nfi.Clone(); nfi.CurrencySymbol = ""; loadPage(); }
public static void Main() { NumberFormatInfo nfi = NumberFormatInfo.CurrentInfo; Console.WriteLine("Read-Only: {0}\n", nfi.IsReadOnly); NumberFormatInfo nfiw = (NumberFormatInfo)nfi.Clone(); Console.WriteLine("Read-Only: {0}", nfiw.IsReadOnly); }
public static void Main() { NumberFormatInfo current1 = NumberFormatInfo.CurrentInfo; current1 = (NumberFormatInfo)current1.Clone(); Console.WriteLine(current1.IsReadOnly); CultureInfo culture2 = CultureInfo.CreateSpecificCulture(CultureInfo.CurrentCulture.Name); NumberFormatInfo current2 = culture2.NumberFormat; Console.WriteLine(current2.IsReadOnly); }
/// <summary> /// Returns a clone of provided formatter and adjusts its number of decimal /// digits accordingly. /// </summary> /// <remarks> /// This method returns a clone of provided <paramref name="formatter"/> and /// adjusts its number of decimal digits accordingly. The provided number of /// decimal digits is limited to a range of [0..99]. /// </remarks> /// <param name="formatter"> /// The formatter to be cloned. /// </param> /// <param name="decimals"> /// The number of decimal digits to be used. /// </param> /// <returns> /// The derived and configured number formatter. /// </returns> private NumberFormatInfo GetFormatter(NumberFormatInfo formatter, Int32 decimals) { const Int32 min = 0; const Int32 max = 99; NumberFormatInfo result = formatter.Clone() as NumberFormatInfo; // NumberFormatInfo.NumberDecimalDigits requires decimals in range of [0..99]. result.NumberDecimalDigits = (decimals < min) ? min : ((decimals > max) ? max : decimals); return(result); }
static void Main() { decimal total = 1234.56m; CultureInfo vietnam = new CultureInfo(1066); CultureInfo usa = new CultureInfo("en-US"); NumberFormatInfo nfi = usa.NumberFormat; nfi = (NumberFormatInfo)nfi.Clone(); nfi.CurrencySymbol = vietnam.NumberFormat.CurrencySymbol; Console.WriteLine(total.ToString("c", nfi)); }
internal static NumberFormatInfo GetNormalizedNumberFormat(NumberFormatInfo InNumberFormat) { NumberFormatInfo numberFormatInfo1 = InNumberFormat; if (numberFormatInfo1.CurrencyDecimalSeparator != null && numberFormatInfo1.NumberDecimalSeparator != null && (numberFormatInfo1.CurrencyGroupSeparator != null && numberFormatInfo1.NumberGroupSeparator != null) && (numberFormatInfo1.CurrencyDecimalSeparator.Length == 1 && numberFormatInfo1.NumberDecimalSeparator.Length == 1 && (numberFormatInfo1.CurrencyGroupSeparator.Length == 1 && numberFormatInfo1.NumberGroupSeparator.Length == 1)) && ((int)numberFormatInfo1.CurrencyDecimalSeparator[0] == (int)numberFormatInfo1.NumberDecimalSeparator[0] && (int)numberFormatInfo1.CurrencyGroupSeparator[0] == (int)numberFormatInfo1.NumberGroupSeparator[0] && numberFormatInfo1.CurrencyDecimalDigits == numberFormatInfo1.NumberDecimalDigits)) { return(InNumberFormat); } NumberFormatInfo numberFormatInfo2 = InNumberFormat; if (numberFormatInfo2.CurrencyDecimalSeparator != null && numberFormatInfo2.NumberDecimalSeparator != null && (numberFormatInfo2.CurrencyDecimalSeparator.Length == numberFormatInfo2.NumberDecimalSeparator.Length && numberFormatInfo2.CurrencyGroupSeparator != null) && (numberFormatInfo2.NumberGroupSeparator != null && numberFormatInfo2.CurrencyGroupSeparator.Length == numberFormatInfo2.NumberGroupSeparator.Length)) { int num1 = 0; int num2 = checked (numberFormatInfo2.CurrencyDecimalSeparator.Length - 1); int index1 = num1; while (index1 <= num2) { if ((int)numberFormatInfo2.CurrencyDecimalSeparator[index1] == (int)numberFormatInfo2.NumberDecimalSeparator[index1]) { checked { ++index1; } } else { goto label_13; } } int num3 = 0; int num4 = checked (numberFormatInfo2.CurrencyGroupSeparator.Length - 1); int index2 = num3; while (index2 <= num4) { if ((int)numberFormatInfo2.CurrencyGroupSeparator[index2] == (int)numberFormatInfo2.NumberGroupSeparator[index2]) { checked { ++index2; } } else { goto label_13; } } return(InNumberFormat); } label_13: NumberFormatInfo numberFormatInfo3 = (NumberFormatInfo)InNumberFormat.Clone(); NumberFormatInfo numberFormatInfo4 = numberFormatInfo3; numberFormatInfo4.CurrencyDecimalSeparator = numberFormatInfo4.NumberDecimalSeparator; numberFormatInfo4.CurrencyGroupSeparator = numberFormatInfo4.NumberGroupSeparator; numberFormatInfo4.CurrencyDecimalDigits = numberFormatInfo4.NumberDecimalDigits; return(numberFormatInfo3); }
/// <summary> /// Displays the current value of the numeric up-down control in the appropriate format. /// </summary> internal void UpdateText() { NumberFormatInfo formatInfo = (NumberFormatInfo)NumberFormatInfo.Clone(); formatInfo.NumberGroupSeparator = String.Empty; string formattedValue = Value.ToString("F" + DecimalPlaces, formatInfo); if (_textBox != null) { _lastInput = formattedValue; _textBox.Text = formattedValue; } }
public CSVExportFormatter(CSVExportUserPreferences userPreference, OutputTypes outputType, bool isRawDataAsDBaseRequired = false) { UserPreference = userPreference; OutputType = outputType; IsRawDataAsDBaseRequired = isRawDataAsDBaseRequired; NullString = isRawDataAsDBaseRequired ? string.Empty : "?"; SetupUserPreferences(userPreference); _nfiUser = NumberFormatInfo.GetInstance(CultureInfo.InvariantCulture).Clone() as NumberFormatInfo; _nfiUser.NumberDecimalSeparator = userPreference.DecimalSeparator ?? _nfiUser.NumberDecimalSeparator; _nfiUser.NumberGroupSeparator = userPreference.ThousandsSeparator ?? _nfiUser.NumberGroupSeparator; _nfiUser.NumberDecimalDigits = DefaultDecimalPlaces; _nfiDefault = _nfiUser.Clone() as NumberFormatInfo; // the dp will be altered on this }
public void TestClone() { NumberFormatInfo nfi1 = new NumberFormatInfo(); nfi1.CurrencyDecimalSeparator = "testStr"; NumberFormatInfo nfi2 = (NumberFormatInfo)nfi1.Clone(); Assert.NotEqual(nfi1.GetHashCode(), nfi2.GetHashCode()); Assert.NotEqual(nfi1, nfi2); Assert.Equal(nfi1.CurrencyDecimalDigits, nfi2.CurrencyDecimalDigits); Assert.Equal(nfi1.CurrencyDecimalSeparator, nfi2.CurrencyDecimalSeparator); Assert.Equal(nfi1.CurrencyGroupSizes, nfi2.CurrencyGroupSizes); Assert.Equal(nfi1.CurrencyGroupSeparator, nfi2.CurrencyGroupSeparator); Assert.Equal(nfi1.CurrencyNegativePattern, nfi2.CurrencyNegativePattern); Assert.Equal(nfi1.CurrencyPositivePattern, nfi2.CurrencyPositivePattern); Assert.Equal(nfi1.IsReadOnly, nfi2.IsReadOnly); }
/// <summary> /// Create a number format based on the default format /// </summary> protected NumberFormatInfo CreateFormatInfo(int decDig, string decSep, string grSep) { var nfi = (NumberFormatInfo)defNfi.Clone(); nfi.NumberDecimalDigits = decDig; if (decSep != null) { nfi.NumberDecimalSeparator = decSep; } if (grSep != null) { nfi.NumberGroupSeparator = grSep; } return(nfi); }
public void Clone() { NumberFormatInfo format = new NumberFormatInfo(); format.CurrencyDecimalSeparator = "string"; NumberFormatInfo clone = (NumberFormatInfo)format.Clone(); Assert.NotEqual(format.GetHashCode(), clone.GetHashCode()); Assert.NotEqual(format, clone); Assert.NotSame(format, clone); Assert.Equal(format.CurrencyDecimalDigits, clone.CurrencyDecimalDigits); Assert.Equal(format.CurrencyDecimalSeparator, clone.CurrencyDecimalSeparator); Assert.Equal(format.CurrencyGroupSizes, clone.CurrencyGroupSizes); Assert.Equal(format.CurrencyGroupSeparator, clone.CurrencyGroupSeparator); Assert.Equal(format.CurrencyNegativePattern, clone.CurrencyNegativePattern); Assert.Equal(format.CurrencyPositivePattern, clone.CurrencyPositivePattern); Assert.Equal(format.IsReadOnly, clone.IsReadOnly); }
internal static NumberFormatInfo GetNormalizedNumberFormat(NumberFormatInfo InNumberFormat) { NumberFormatInfo info2; NumberFormatInfo info3 = InNumberFormat; if (((((info3.CurrencyDecimalSeparator != null) && (info3.NumberDecimalSeparator != null)) && ((info3.CurrencyGroupSeparator != null) && (info3.NumberGroupSeparator != null))) && (((info3.CurrencyDecimalSeparator.Length == 1) && (info3.NumberDecimalSeparator.Length == 1)) && ((info3.CurrencyGroupSeparator.Length == 1) && (info3.NumberGroupSeparator.Length == 1)))) && (((info3.CurrencyDecimalSeparator[0] == info3.NumberDecimalSeparator[0]) && (info3.CurrencyGroupSeparator[0] == info3.NumberGroupSeparator[0])) && (info3.CurrencyDecimalDigits == info3.NumberDecimalDigits))) { return(InNumberFormat); } info3 = null; NumberFormatInfo info4 = InNumberFormat; if ((((info4.CurrencyDecimalSeparator != null) && (info4.NumberDecimalSeparator != null)) && ((info4.CurrencyDecimalSeparator.Length == info4.NumberDecimalSeparator.Length) && (info4.CurrencyGroupSeparator != null))) && ((info4.NumberGroupSeparator != null) && (info4.CurrencyGroupSeparator.Length == info4.NumberGroupSeparator.Length))) { int num; int num2 = info4.CurrencyDecimalSeparator.Length - 1; for (num = 0; num <= num2; num++) { if (info4.CurrencyDecimalSeparator[num] != info4.NumberDecimalSeparator[num]) { goto Label_018E; } } int num3 = info4.CurrencyGroupSeparator.Length - 1; for (num = 0; num <= num3; num++) { if (info4.CurrencyGroupSeparator[num] != info4.NumberGroupSeparator[num]) { goto Label_018E; } } return(InNumberFormat); } info4 = null; Label_018E: info2 = (NumberFormatInfo)InNumberFormat.Clone(); NumberFormatInfo info5 = info2; info5.CurrencyDecimalSeparator = info5.NumberDecimalSeparator; info5.CurrencyGroupSeparator = info5.NumberGroupSeparator; info5.CurrencyDecimalDigits = info5.NumberDecimalDigits; info5 = null; return(info2); }
internal NumberFormatInfo GetNumberFormatInfo() { NumberFormatInfo numberFormatInfo; if (NumberFormatInfo == null) { // The separator should be updated only if no NumberFormatInfo is set explicitly to the NumericUpDown. numberFormatInfo = (NumberFormatInfo)CultureInfo.CurrentCulture.NumberFormat.Clone(); SetNumberDecimalSeparator(numberFormatInfo); _isFromCurrentCulture = true; } else { numberFormatInfo = (NumberFormatInfo)NumberFormatInfo.Clone(); _isFromCurrentCulture = false; } return(numberFormatInfo); }
public string ToString(string format, IFormatProvider provider, bool useISOCodeAsSymbol) { // REVIEW: was ist mit Digits, Groups, Decimal usw. Müssen wir die nicht von DB oder sonstwo beziehen? Guard.ArgumentNotEmpty(format, "format"); NumberFormatInfo info = null; CultureInfo ci; if (provider == null) { provider = CultureInfo.GetCultureInfo(this.Currency.Region.Name).NumberFormat; } info = provider as NumberFormatInfo; if (info == null) { ci = provider as CultureInfo; if (ci != null) { info = ci.NumberFormat; } } if (info != null) { info = (NumberFormatInfo)info.Clone(); if (Currency != Currency.Empty) { info.CurrencySymbol = useISOCodeAsSymbol ? Currency.ThreeLetterISOCode : Currency.Symbol.NullEmpty() ?? Currency.ThreeLetterISOCode; } else { info.CurrencySymbol = "?"; } } return(Value.ToString(format, info)); }
/// <summary> /// Parses the specified percentage value. /// </summary> /// <param name="value">The percentage value to parse.</param> /// <returns>Parsed percentage value as a <see cref="Double"/>.</returns> public object Parse(string value) { if (!StringUtils.HasText(value)) { return(0d); } // there is no percentage parser in .NET, so we use currency parser to achieve the goal NumberFormatInfo fi = (NumberFormatInfo)formatInfo.Clone(); fi.CurrencyDecimalDigits = formatInfo.PercentDecimalDigits; fi.CurrencyDecimalSeparator = formatInfo.PercentDecimalSeparator; fi.CurrencyGroupSeparator = formatInfo.PercentGroupSeparator; fi.CurrencyGroupSizes = formatInfo.PercentGroupSizes; fi.CurrencyNegativePattern = negativePatterns[formatInfo.PercentNegativePattern]; fi.CurrencyPositivePattern = positivePatterns[formatInfo.PercentPositivePattern]; fi.CurrencySymbol = formatInfo.PercentSymbol; return(Double.Parse(value, NumberStyles.Currency, fi) / 100); }
public void Clone() { NumberFormatInfo format = new NumberFormatInfo(); format.CurrencyDecimalSeparator = "string"; NumberFormatInfo clone = (NumberFormatInfo)format.Clone(); Assert.NotEqual(format.GetHashCode(), clone.GetHashCode()); Assert.NotEqual(format, clone); Assert.NotSame(format, clone); Assert.Equal(format.CurrencyDecimalDigits, clone.CurrencyDecimalDigits); Assert.Equal(format.CurrencyDecimalSeparator, clone.CurrencyDecimalSeparator); Assert.Equal(format.CurrencyGroupSizes, clone.CurrencyGroupSizes); Assert.Equal(format.CurrencyGroupSeparator, clone.CurrencyGroupSeparator); Assert.Equal(format.CurrencyNegativePattern, clone.CurrencyNegativePattern); Assert.Equal(format.CurrencyPositivePattern, clone.CurrencyPositivePattern); Assert.Equal(format.IsReadOnly, clone.IsReadOnly); }
public ToNumConverter(XmlNode node) : base(node) { numberFormat = CultureInfo.InvariantCulture.NumberFormat; String groupSep = node.ReadStr("@groupsep", null); String decimalSep = node.ReadStr("@decimalsep", null); if (groupSep != null || decimalSep != null) { numberFormat = (NumberFormatInfo)numberFormat.Clone(); if (groupSep != null) { numberFormat.CurrencyGroupSeparator = groupSep; numberFormat.NumberDecimalSeparator = groupSep; } if (decimalSep != null) { numberFormat.CurrencyDecimalSeparator = decimalSep; numberFormat.NumberDecimalSeparator = decimalSep; } } }