Search This Blog

Sunday, August 26, 2018

Preferred way to format fractional numbers in C#

double myDouble1 = 0.32;
double myDouble2 = 321.5235;

var currentCulture = CultureInfo.InvariantCulture.Clone() as CultureInfo;
var numberFormat = currentCulture.NumberFormat;
numberFormat.NumberDecimalDigits = 2;

Console.WriteLine(myDouble1.ToString("F", numberFormat));
Console.WriteLine(myDouble2.ToString("F", numberFormat));

Wednesday, August 15, 2018

JwtSecurityTokenHandler.ValidateToken throws exception and mentions setting IdentityModelEventSource.cs's ShowPII to true

Matthew Steeples here solved the mystery:

ShowPII is a static property, and here is how you can set it:
Microsoft.IdentityModel.Logging.IdentityModelEventSource.ShowPII = true;

Sunday, August 12, 2018

Properly handle insertion of values of type Double into database, independently of CurrentCulture, in C#

if (row[column] is double)
{
    //properly deal with rational numbers - ALWAYS use the same (english - culture invariant) numbering format rules - otherwise data will differ between cultures
    //for example, portuguese uses , as thousand separator, while english uses a dot. This causes mySql to calculate different values form SUM(myColumn).

    var d = Convert.ToDouble(row[column]);
    value = d.ToString(CultureInfo.InvariantCulture);
}