The difference between C# formatting decimal N and F

There is a difference between C# formatting decimals N and F. In formatting N, the integer part starts with a single digit and automatically adds commas every three digits (thousand times), while formatting F has no commas.

for example:

double d=12345.6789;

The resulting string of formatted N3 is: 12,345.679. The integer part starts with a single digit and automatically adds a comma every three digits (thousand times)

The resulting string for formatting F3 is: 12345.679. no comma

An example formatter is as follows:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace NumberFormatDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            double d = 12345.6789;
            string formatN = d.ToString("N3");
            string formatF = d.ToString("F3");
            Console.WriteLine($"格式化为N3,结果为【{formatN}】,是否包含逗号:【{formatN.Contains(",")}】");
            Console.WriteLine($"格式化为F3,结果为【{formatF}】,是否包含逗号:【{formatF.Contains(",")}】");
            Console.WriteLine();

            d = 1.23456789E+3; 
            formatN = d.ToString("N3");
            formatF = d.ToString("F3");
            Console.WriteLine($"格式化为N3,结果为【{formatN}】,是否包含逗号:【{formatN.Contains(",")}】");
            Console.WriteLine($"格式化为F3,结果为【{formatF}】,是否包含逗号:【{formatF.Contains(",")}】");
            Console.WriteLine();

            d = 1.23456789E-6;
            Console.WriteLine(d);
            formatN = d.ToString("N3");
            formatF = d.ToString("F3");
            Console.WriteLine($"格式化为N3,结果为【{formatN}】,是否包含逗号:【{formatN.Contains(",")}】");
            Console.WriteLine($"格式化为F3,结果为【{formatF}】,是否包含逗号:【{formatF.Contains(",")}】");
            Console.WriteLine();

            d = 1.23456789E6;
            formatN = d.ToString("N3");
            formatF = d.ToString("F3");
            Console.WriteLine($"格式化为N3,结果为【{formatN}】,是否包含逗号:【{formatN.Contains(",")}】");
            Console.WriteLine($"格式化为F3,结果为【{formatF}】,是否包含逗号:【{formatF.Contains(",")}】");
            Console.WriteLine();

            d = 68.23450789E0;
            formatN = d.ToString("N3");
            formatF = d.ToString("F3");
            Console.WriteLine($"格式化为N3,结果为【{formatN}】,是否包含逗号:【{formatN.Contains(",")}】");
            Console.WriteLine($"格式化为F3,结果为【{formatF}】,是否包含逗号:【{formatF.Contains(",")}】");
            Console.WriteLine();

            d = 55;
            formatN = d.ToString("N3");
            formatF = d.ToString("F3");
            Console.WriteLine($"格式化为N3,结果为【{formatN}】,是否包含逗号:【{formatN.Contains(",")}】");
            Console.WriteLine($"格式化为F3,结果为【{formatF}】,是否包含逗号:【{formatF.Contains(",")}】");
            Console.WriteLine();

            d = 67890;
            formatN = d.ToString("N3");
            formatF = d.ToString("F3");
            Console.WriteLine($"格式化为N3,结果为【{formatN}】,是否包含逗号:【{formatN.Contains(",")}】");
            Console.WriteLine($"格式化为F3,结果为【{formatF}】,是否包含逗号:【{formatF.Contains(",")}】");
            Console.WriteLine();
            Console.ReadLine();
        }
    }
}

Run as shown in the figure:

 

Guess you like

Origin blog.csdn.net/ylq1045/article/details/129320685