c# ToString格式化

在做类对象自定义比对的时候,从数据库中取出的数据和本地生成的数据使用默认的ToString()输出未必一直,如下:

//2018-01-29
//sql--date--2018-01-29 00:00:00.123
//2018-01-29 00:00:00

//1m
//sql--numeric(18, 2)--1.00
//1

数字转换为String,使用Math.Round保留小数位数:

public void ConvertToString()
{
    //float--f
    var a = 1f;
    Console.WriteLine(Math.Round(a, 4));//1
    a = 1.12f;
    Console.WriteLine(Math.Round(a, 4));//1.12
    a = 1.12345f;
    Console.WriteLine(Math.Round(a, 4));//1.1235

    //decimal--m,double--d
    var b = 1m;//1d;
    Console.WriteLine(Math.Round(b, 4));//1
    b = 1.12m;//1/12d;
    Console.WriteLine(Math.Round(b, 4));//1.12
    b = 1.12345m;//1.12345d
    Console.WriteLine(Math.Round(b, 4));//1.1234
}

第一个问题就是数字本身小数点,第二个问题就是小数值四舍五入的算法。

考虑使用ToString格式化字符串,整理如下:

1.Guid

var guid = Guid.NewGuid();
//D,N,B,P大写小写效果是一样
Console.WriteLine(guid.ToString("D"));// 10244798-9a34-4245-b1ef-9143f9b1e68a
Console.WriteLine(guid.ToString("N"));// 102447989a344245b1ef9143f9b1e68a
Console.WriteLine(guid.ToString("B"));// {10244798-9a34-4245-b1ef-9143f9b1e68a}
Console.WriteLine(guid.ToString("P"));// (10244798-9a34-4245-b1ef-9143f9b1e68a)
Console.WriteLine(guid.ToString());// 10244798-9a34-4245-b1ef-9143f9b1e68a

2.Date

DateTime dt = new DateTime(2018, 1, 1, 12, 5, 5, 123);//2018-01-01 05:06:07.123
Console.WriteLine(dt.ToString("y"));//2018年1月
Console.WriteLine(dt.ToString("Y"));//2018年1月
Console.WriteLine(dt.ToString("m"));//1月1日
Console.WriteLine(dt.ToString("M"));//1月1日
Console.WriteLine(dt.ToString("d"));//2018-01-01
Console.WriteLine(dt.ToString("D"));//2018年1月1日
Console.WriteLine(dt.ToString("t"));//12:05
Console.WriteLine(dt.ToString("T"));//12:05:05
Console.WriteLine(dt.ToString("%d"));//1   一月中某天
Console.WriteLine(dt.ToString("%h"));//12   一天中某小时
Console.WriteLine(dt.ToString("%H"));//12   一天中某小时
Console.WriteLine(dt.ToString("dd"));//01   一月中某天
Console.WriteLine(dt.ToString("ddd"));//周一   一周中某一天,在AbbreviatedDayNames中定义。
Console.WriteLine(dt.ToString("dddd"));//星期一   一星期中某一天,在DayNames中定义
Console.WriteLine(dt.ToString("MM"));//01   一年中某月
Console.WriteLine(dt.ToString("MMM"));//一月   月份的缩写名称,在AbbreviatedMonthNames中定义。
Console.WriteLine(dt.ToString("MMMM"));//一月   月份的完整名称,在MonthNames中定义。
Console.WriteLine(dt.ToString("yy"));//18
Console.WriteLine(dt.ToString("yyyy"));//2018
Console.WriteLine(dt.ToString("gg"));//公元
Console.WriteLine(dt.ToString("hh"));//12    12小时制
Console.WriteLine(dt.ToString("HH"));//12    24小时制
Console.WriteLine(dt.ToString("tt"));//下午    上午,下午
Console.WriteLine(dt.ToString("mm"));//05

3.Number

//C 货币
Console.WriteLine(2.5.ToString("C"));//¥2.50
Console.WriteLine(2.5.ToString("C5"));//¥2.50000
//D 十进制数
Console.WriteLine(25.ToString("D5"));//00025,不够前补0
//E 科学型
Console.WriteLine(25000.ToString("E"));//2.500000E+004
//F 固定点
Console.WriteLine(25.ToString("F2"));//25.00
//G 常规
Console.WriteLine(2.5.ToString("G"));//2.5
//N 数字
Console.WriteLine(2500000.ToString("N"));//2,500,000.00
//X 十六进制
Console.WriteLine(256.ToString("X"));//100
//#.00 保留小数位数
Console.WriteLine(256.ToString("#.00"));//256.00
//#,#.00 千位分隔符
Console.WriteLine(25656.ToString("#,#.00"));//256.00

原文地址:https://www.cnblogs.com/lcawen/p/8376563.html

时间: 2024-08-03 20:48:16

c# ToString格式化的相关文章

实例365(6)---------DateTime.ToString格式化日期,使用DateDiff方法获取日期时间的间隔数

一:DateTime.ToString格式化日期,截图 二:代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace TmrFormat { public part

C# .ToString() 格式化

c# ToString() 格式化字符串  格式化数值:有时,我们可能需要将数值以一定的格式来呈现,就需要对数值进行格式化.我们使用格式字符串指定格式.格式字符串采用以下形式:Axx,其中 A 为格式说明符,指定格式化类型,xx 为精度说明符,控制格式化输出的有效位数或小数位数. 格式说明符 说明 示例 输出 C 货币 2.5.ToString("C") ¥2.50  D 十进制数 25.ToString("D5") 00025 E 科学型 25000.ToStri

造轮子:C# .ToString() 格式化

厂址:http://www.cnblogs.com/bignjl/archive/2011/01/14/1935645.html 格式说明符 说明 示例 输出 C   货币 2.5.ToString("C")  ¥2.50  D 十进制数  25.ToString("D5")  00025 E          科学型   25000.ToString("E") 2.500000E+005 F  固定点   25.ToString("F

C# tostring 格式化输出

C 货币 2.5.ToString("C") ¥2.50 D 十进制数 25.ToString("D5") 00025 E 科学型 25000.ToString("E") 2.500000E+005 F 固定点 25.ToString("F2") 25.00 G 常规 2.5.ToString("G") 2.5 N 数字 2500000.ToString("N") 2,500,000.0

ToString格式化

Int.ToString(format): 格式字符串采用以下形式:Axx,其中 A 为格式说明符,指定格式化类型,xx 为精度说明符,控制格式化输出的有效位数或小数位数,具体如下: 格式说明符 说明 示例 输出 C 货币 2.5.ToString("C") ¥2.50 D 十进制数 25.ToString("D5") 00025 E 科学型 25000.ToString("E") 2.500000E+005 F 固定点 25.ToString(

tostring格式化输出

C 货币 2.5.ToString("C") ¥2.50 D 十进制数 25.ToString("D5") 00025 E 科学型 25000.ToString("E") 2.500000E+005 F 固定点 25.ToString("F2") 25.00 G 常规 2.5.ToString("G") 2.5 N 数字 2500000.ToString("N") 2,500,000.0

[转].tostring设置格式。C# tostring 格式化输出

http://blog.csdn.net/hyynet09/article/details/4219488 C 货币 2.5.ToString("C") ¥2.50 D 十进制数 25.ToString("D5") 00025 E 科学型 25000.ToString("E") 2.500000E+005 F 固定点 25.ToString("F2") 25.00 G 常规 2.5.ToString("G"

C#中string.Format()和ToString()格式化方法

C#数字格式化输出是我们在编程中经常需要处理的事情,那么这里向你介绍了一些C#数字格式化输出的例子,这样就会方便你来选择和比较,什么方式是比较适合自己项目的. int a = 12345678; C#数字格式化之格式为sring输出 Label1.Text = string.Format("asdfadsf{0}adsfasdf",a); Label2.Text = "asdfadsf"+a.ToString()+"adsfasdf"; Labe

ToString() 格式化字符串

例如i=1: i.ToString().PadLeft(10,'0'); 固定长度为10,左不足补0,结果为0000000001: