public static void Main()
Console.WriteLine("Before v1.39.4");
for(int np = 9899; np <= 9901; np++) {
float npDisplay = (float)np / (float)lineMaxNp * 100.0f;
Console.Write("{0:0.00}%: ", npDisplay);
if((float)lineMaxNp * 0.99f <= (float)np) {
Console.WriteLine("up to 100%");
Console.WriteLine("keep");
Console.WriteLine("Since v1.40.0");
for(int np = 9899; np <= 9901; np++) {
float npDisplay = (float)np / (float)lineMaxNp * 100.0f;
Console.Write("{0:0.00}%: ", npDisplay);
if((double)lineMaxNp * 0.99 <= (double)np) {
Console.WriteLine("up to 100%");
Console.WriteLine("keep");
Console.WriteLine("Wrong in old version:");
Console.WriteLine("C# will convert float to double for this operation, ");
Console.WriteLine("and the left part will be {0}", (double)((float)lineMaxNp * 0.99f));
Console.WriteLine("See also: https://stackoverflow.com/questions/2342396/why-does-this-floating-point-calculation-give-different-results-on-different-mac");