c#能不能像C语言那样控制输出数字所占的位数
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/18 20:50:18
c#能不能像C语言那样控制输出数字所占的位数
像%5.2f之类,可以控制数字占5个字符的位置.
像%5.2f之类,可以控制数字占5个字符的位置.
int a = 12345678;
//格式为sring输出
Label1.Text = string.Format("asdfadsf{0}adsfasdf",a);
Label2.Text = "asdfadsf"+a.ToString()+"adsfasdf";
Label1.Text = string.Format("asdfadsf{0:C}adsfasdf",a);//asdfadsf¥1,234.00adsfasdf
Label2.Text = "asdfadsf"+a.ToString("C")+"adsfasdf";//asdfadsf¥1,234.00adsfasdf
double b = 1234.12543;
int a = 12345678;
//格式为特殊的string样式输出
Label1.Text = string.Format("asdfadsf{0:C}adsfasdf",b);//asdfadsf¥1,234.13adsfasdf
Label2.Text = "asdfadsf"+b.ToString("C")+"adsfasdf";//asdfadsf¥1,234.13adsfasdf
Label1.Text = string.Format("{0:C3}",b);//¥1,234.125
Label2.Text = b.ToString("C3");//¥1,234.125
Label1.Text = string.Format("{0:d}",a);//十进制--12345678
Label2.Text = b.ToString("d");//十进制--相同的类型,转换报错
Label1.Text = string.Format("{0:e}",a);//指数--1.234568e+007
Label2.Text = b.ToString("e");//指数--1.234125e+003
Label1.Text = string.Format("{0:f}",a);//定点数--12345678.00
Label2.Text = b.ToString("f");//定点数--1234.13
Label1.Text = string.Format("{0:n}",a);//数值--12,345,678.00
Label2.Text = b.ToString("n");//数值--1,234.13
Label1.Text = string.Format("{0:x}",a);//十六进制--bc614e
Label2.Text = b.ToString("x");//16--带有小数不能转换,出错
Label1.Text = string.Format("{0:g}",a);//通用为最紧凑--12345678
Label2.Text = b.ToString("g");//通用为最紧凑--1234.12543
Label1.Text = string.Format("{0:r}",a);//转来转去不损失精度--整数不允许用,报错
Label2.Text = b.ToString("r");//转来转去不损失精度--1234.12543
double b = 4321.12543;
int a = 1234;
自定义模式输出:
//"0"描述:占位符,如果可能,填充位
Label1.Text = string.Format("{0:000000}",a);// 001234
Label2.Text = string.Format("{0:000000}",b);// 004321
//"#"描述:占位符,如果可能,填充位
Label1.Text = string.Format("{0:#######}",a);// 1234
Label2.Text = string.Format("{0:#######}",b);// 4321
Label1.Text = string.Format("{0:#0####}",a);// 01234
Label2.Text = string.Format("{0:0#0000}",b);// 004321
//"."描述:小数点
Label1.Text = string.Format("{0:000.000}",a);//1234.000
Label2.Text = string.Format("{0:000.000}",b);//4321.125
double b = 87654321.12543;
int a = 12345678;
//","描述:数字分组,也用于增倍器
Label1.Text = string.Format("{0:0,00}",a);// 12,345,678
Label2.Text = string.Format("{0:0,00}",b);// 87,654,32
Label1.Text = string.Format("{0:0,}",a);// 12346
Label2.Text = string.Format("{0:0,}",b);// 87654
Label1.Text = string.Format("{0:0,}",a);// 12
Label2.Text = string.Format("{0:0,}",b);// 88
Label1.Text = string.Format("{0:0,}",a);// 0
Label2.Text = string.Format("{0:0,}",b);// 0
//"%"描述:格式为百分数
Label1.Text = string.Format("{0:0%}",a);// 1234567800%
Label2.Text = string.Format("{0:#%}",b);// 8765432113%
Label1.Text = string.Format("{0:0.00%}",a);// 1234567800.00%
Label2.Text = string.Format("{0:#.00%}",b);// 8765432112.54%
//"abc"描述:显示单引号内的文本
Label1.Text = string.Format("{0:'文本'0}",a);// 文本12345678
Label2.Text = string.Format("{0:文本0}",b);// 文本87654321
//"""描述:后跟1要打印字的字符,也用于转移符"n等
Label1.Text = string.Format("""你好!""");// "你好!"
Label2.Text = string.Format("[url=file://""c""books""new""we.asp]""c""books""new""we.asp");//"c"books"new"we.asp
//"@"描述:后跟要打印字的字符,
Label1.Text = string.Format(@"""你好!"""); // "你好!"要打印"则需要输入两对才可以
Label2.Text = string.Format(@""c"books"new"we.asp");//"c"books"new"we.asp
Label1.Text = String.Format("{0:yyyy年-mm月-dd日",DateTime.Now);
日期转化一
为了达到不同的显示效果有时,我们需要对时间进行转化,默认格式为:2007-01-03 14:33:34 ,要转化为其他格式,要用到DateTime.ToString的方法(String, IFormatProvider),如下所示:
using System;
using System.Globalization;
String format="D";
DateTime date=DataTime,Now;
Response.Write(date.ToString(format, DateTimeFormatInfo.InvariantInfo));
结果输出
Thursday, June 16, 2005
参数format格式详细用法:
格式字符 关联属性/说明
d ShortDatePattern
D LongDatePattern
f 完整日期和时间(长日期和短时间)
F FullDateTimePattern(长日期和长时间)
g 常规(短日期和短时间)
G 常规(短日期和长时间)
m、M MonthDayPattern
r、R RFC1123Pattern
s 使用当地时间的 SortableDateTimePattern(基于 ISO 8601)
t ShortTimePattern
T LongTimePattern
u UniversalSortableDateTimePattern 用于显示通用时间的格式
U 使用通用时间的完整日期和时间(长日期和长时间)
y、Y YearMonthPattern
下表列出了可被合并以构造自定义模式的模式.这些模式是区分大小写的;例如,识别“MM”,但不识别“mm”.如果自定义模式包含空白字符或用单引号括起来的字符,则输出字符串页也将包含这些字符.未定义为格式模式的一部分或未定义为格式字符的字符按其原义复制.
格式模式 说明
d 月中的某一天.一位数的日期没有前导零.
dd 月中的某一天.一位数的日期有一个前导零.
ddd 周中某天的缩写名称,在 AbbreviatedDayNames 中定义.
dddd 周中某天的完整名称,在 DayNames 中定义.
M 月份数字.一位数的月份没有前导零.
MM 月份数字.一位数的月份有一个前导零.
MMM 月份的缩写名称,在 AbbreviatedMonthNames 中定义.
MMMM 月份的完整名称,在 MonthNames 中定义.
y 不包含纪元的年份.如果不包含纪元的年份小于 10,则显示不具有前导零的年份.
yy 不包含纪元的年份.如果不包含纪元的年份小于 10,则显示具有前导零的年份.
yyyy 包括纪元的四位数的年份.
gg 时期或纪元.如果要设置格式的日期不具有关联的时期或纪元字符串,则忽略该模式.
h 12 小时制的小时.一位数的小时数没有前导零.
hh 12 小时制的小时.一位数的小时数有前导零.
H 24 小时制的小时.一位数的小时数没有前导零.
HH 24 小时制的小时.一位数的小时数有前导零.
m 分钟.一位数的分钟数没有前导零.
mm 分钟.一位数的分钟数有一个前导零.
s 秒.一位数的秒数没有前导零.
ss 秒.一位数的秒数有一个前导零.
f 秒的小数精度为一位.其余数字被截断.
ff 秒的小数精度为两位.其余数字被截断.
fff 秒的小数精度为三位.其余数字被截断.
ffff 秒的小数精度为四位.其余数字被截断.
fffff 秒的小数精度为五位.其余数字被截断.
ffffff 秒的小数精度为六位.其余数字被截断.
fffffff 秒的小数精度为七位.其余数字被截断.
t 在 AMDesignator 或 PMDesignator 中定义的 AM/PM 指示项的第一个字符(如果存在).
tt 在 AMDesignator 或 PMDesignator 中定义的 AM/PM 指示项(如果存在).
z 时区偏移量(“+”或“-”后面仅跟小时).一位数的小时数没有前导零.例如,太平洋标准时间是“-8”.
zz 时区偏移量(“+”或“-”后面仅跟小时).一位数的小时数有前导零.例如,太平洋标准时间是“-08”.
zzz 完整时区偏移量(“+”或“-”后面跟有小时和分钟).一位数的小时数和分钟数有前导零.例如,太平洋标准时间是“-08:00”.
: 在 TimeSeparator 中定义的默认时间分隔符.
/ 在 DateSeparator 中定义的默认日期分隔符.
% c 其中 c 是格式模式(如果单独使用).如果格式模式与原义字符或其他格式模式合并,则可以省略“%”字符.
" c 其中 c 是任意字符.照原义显示字符.若要显示反斜杠字符,请使用“""”.
只有上面第二个表中列出的格式模式才能用于创建自定义模式;在第一个表中列出的标准格式字符不能用于创建自定义模式.自定义模式的长度至少为两个字符;例如,
DateTime.ToString( "d") 返回 DateTime 值;“d”是标准短日期模式.
DateTime.ToString( "%d") 返回月中的某天;“%d”是自定义模式.
DateTime.ToString( "d ") 返回后面跟有一个空白字符的月中的某天;“d”是自定义模式.
比较方便的是,上面的参数可以随意组合,并且不会出错,多试试,肯定会找到你要的时间格式
如要得到2005年06月 这样格式的时间
可以这样写:
date.ToString("yyyy年MM月", DateTimeFormatInfo.InvariantInfo)
再问: string.PadLeft(),这些老师都没讲过,哪里可以找到?Console.WriteLine(“{0}",f);可不可想C语言中在”“中设格式?您回答的这些代码是怎样做到的,像编译器一样?
再答: 额,有什么问题首先可以问身边的人、自己百度或者自己查一下MSDN:http://msdn.microsoft.com/zh-cn/default.aspx 实在不行就像你现在这样上百度知道问... 大家都是这样的一个学习积累的过程
再问: 您可以把其他两个问题也回答一下吗?-_-
再答: 链接发出来啊,有空的话帮你看看
再问: 不是饿,话没说清楚,是第一次追问的时候,我问了三个问题。您只答了一个。
再答: Console.WriteLine("{0, 5}", f.ToString("0.00"));//这样也可以我这些代码是怎样做到的?这个我不太明白你是啥意思...
我是在VS2008里编辑的,然后拷贝过来的,百度知道里有高亮显示并格式化代码的功能:
//格式为sring输出
Label1.Text = string.Format("asdfadsf{0}adsfasdf",a);
Label2.Text = "asdfadsf"+a.ToString()+"adsfasdf";
Label1.Text = string.Format("asdfadsf{0:C}adsfasdf",a);//asdfadsf¥1,234.00adsfasdf
Label2.Text = "asdfadsf"+a.ToString("C")+"adsfasdf";//asdfadsf¥1,234.00adsfasdf
double b = 1234.12543;
int a = 12345678;
//格式为特殊的string样式输出
Label1.Text = string.Format("asdfadsf{0:C}adsfasdf",b);//asdfadsf¥1,234.13adsfasdf
Label2.Text = "asdfadsf"+b.ToString("C")+"adsfasdf";//asdfadsf¥1,234.13adsfasdf
Label1.Text = string.Format("{0:C3}",b);//¥1,234.125
Label2.Text = b.ToString("C3");//¥1,234.125
Label1.Text = string.Format("{0:d}",a);//十进制--12345678
Label2.Text = b.ToString("d");//十进制--相同的类型,转换报错
Label1.Text = string.Format("{0:e}",a);//指数--1.234568e+007
Label2.Text = b.ToString("e");//指数--1.234125e+003
Label1.Text = string.Format("{0:f}",a);//定点数--12345678.00
Label2.Text = b.ToString("f");//定点数--1234.13
Label1.Text = string.Format("{0:n}",a);//数值--12,345,678.00
Label2.Text = b.ToString("n");//数值--1,234.13
Label1.Text = string.Format("{0:x}",a);//十六进制--bc614e
Label2.Text = b.ToString("x");//16--带有小数不能转换,出错
Label1.Text = string.Format("{0:g}",a);//通用为最紧凑--12345678
Label2.Text = b.ToString("g");//通用为最紧凑--1234.12543
Label1.Text = string.Format("{0:r}",a);//转来转去不损失精度--整数不允许用,报错
Label2.Text = b.ToString("r");//转来转去不损失精度--1234.12543
double b = 4321.12543;
int a = 1234;
自定义模式输出:
//"0"描述:占位符,如果可能,填充位
Label1.Text = string.Format("{0:000000}",a);// 001234
Label2.Text = string.Format("{0:000000}",b);// 004321
//"#"描述:占位符,如果可能,填充位
Label1.Text = string.Format("{0:#######}",a);// 1234
Label2.Text = string.Format("{0:#######}",b);// 4321
Label1.Text = string.Format("{0:#0####}",a);// 01234
Label2.Text = string.Format("{0:0#0000}",b);// 004321
//"."描述:小数点
Label1.Text = string.Format("{0:000.000}",a);//1234.000
Label2.Text = string.Format("{0:000.000}",b);//4321.125
double b = 87654321.12543;
int a = 12345678;
//","描述:数字分组,也用于增倍器
Label1.Text = string.Format("{0:0,00}",a);// 12,345,678
Label2.Text = string.Format("{0:0,00}",b);// 87,654,32
Label1.Text = string.Format("{0:0,}",a);// 12346
Label2.Text = string.Format("{0:0,}",b);// 87654
Label1.Text = string.Format("{0:0,}",a);// 12
Label2.Text = string.Format("{0:0,}",b);// 88
Label1.Text = string.Format("{0:0,}",a);// 0
Label2.Text = string.Format("{0:0,}",b);// 0
//"%"描述:格式为百分数
Label1.Text = string.Format("{0:0%}",a);// 1234567800%
Label2.Text = string.Format("{0:#%}",b);// 8765432113%
Label1.Text = string.Format("{0:0.00%}",a);// 1234567800.00%
Label2.Text = string.Format("{0:#.00%}",b);// 8765432112.54%
//"abc"描述:显示单引号内的文本
Label1.Text = string.Format("{0:'文本'0}",a);// 文本12345678
Label2.Text = string.Format("{0:文本0}",b);// 文本87654321
//"""描述:后跟1要打印字的字符,也用于转移符"n等
Label1.Text = string.Format("""你好!""");// "你好!"
Label2.Text = string.Format("[url=file://""c""books""new""we.asp]""c""books""new""we.asp");//"c"books"new"we.asp
//"@"描述:后跟要打印字的字符,
Label1.Text = string.Format(@"""你好!"""); // "你好!"要打印"则需要输入两对才可以
Label2.Text = string.Format(@""c"books"new"we.asp");//"c"books"new"we.asp
Label1.Text = String.Format("{0:yyyy年-mm月-dd日",DateTime.Now);
日期转化一
为了达到不同的显示效果有时,我们需要对时间进行转化,默认格式为:2007-01-03 14:33:34 ,要转化为其他格式,要用到DateTime.ToString的方法(String, IFormatProvider),如下所示:
using System;
using System.Globalization;
String format="D";
DateTime date=DataTime,Now;
Response.Write(date.ToString(format, DateTimeFormatInfo.InvariantInfo));
结果输出
Thursday, June 16, 2005
参数format格式详细用法:
格式字符 关联属性/说明
d ShortDatePattern
D LongDatePattern
f 完整日期和时间(长日期和短时间)
F FullDateTimePattern(长日期和长时间)
g 常规(短日期和短时间)
G 常规(短日期和长时间)
m、M MonthDayPattern
r、R RFC1123Pattern
s 使用当地时间的 SortableDateTimePattern(基于 ISO 8601)
t ShortTimePattern
T LongTimePattern
u UniversalSortableDateTimePattern 用于显示通用时间的格式
U 使用通用时间的完整日期和时间(长日期和长时间)
y、Y YearMonthPattern
下表列出了可被合并以构造自定义模式的模式.这些模式是区分大小写的;例如,识别“MM”,但不识别“mm”.如果自定义模式包含空白字符或用单引号括起来的字符,则输出字符串页也将包含这些字符.未定义为格式模式的一部分或未定义为格式字符的字符按其原义复制.
格式模式 说明
d 月中的某一天.一位数的日期没有前导零.
dd 月中的某一天.一位数的日期有一个前导零.
ddd 周中某天的缩写名称,在 AbbreviatedDayNames 中定义.
dddd 周中某天的完整名称,在 DayNames 中定义.
M 月份数字.一位数的月份没有前导零.
MM 月份数字.一位数的月份有一个前导零.
MMM 月份的缩写名称,在 AbbreviatedMonthNames 中定义.
MMMM 月份的完整名称,在 MonthNames 中定义.
y 不包含纪元的年份.如果不包含纪元的年份小于 10,则显示不具有前导零的年份.
yy 不包含纪元的年份.如果不包含纪元的年份小于 10,则显示具有前导零的年份.
yyyy 包括纪元的四位数的年份.
gg 时期或纪元.如果要设置格式的日期不具有关联的时期或纪元字符串,则忽略该模式.
h 12 小时制的小时.一位数的小时数没有前导零.
hh 12 小时制的小时.一位数的小时数有前导零.
H 24 小时制的小时.一位数的小时数没有前导零.
HH 24 小时制的小时.一位数的小时数有前导零.
m 分钟.一位数的分钟数没有前导零.
mm 分钟.一位数的分钟数有一个前导零.
s 秒.一位数的秒数没有前导零.
ss 秒.一位数的秒数有一个前导零.
f 秒的小数精度为一位.其余数字被截断.
ff 秒的小数精度为两位.其余数字被截断.
fff 秒的小数精度为三位.其余数字被截断.
ffff 秒的小数精度为四位.其余数字被截断.
fffff 秒的小数精度为五位.其余数字被截断.
ffffff 秒的小数精度为六位.其余数字被截断.
fffffff 秒的小数精度为七位.其余数字被截断.
t 在 AMDesignator 或 PMDesignator 中定义的 AM/PM 指示项的第一个字符(如果存在).
tt 在 AMDesignator 或 PMDesignator 中定义的 AM/PM 指示项(如果存在).
z 时区偏移量(“+”或“-”后面仅跟小时).一位数的小时数没有前导零.例如,太平洋标准时间是“-8”.
zz 时区偏移量(“+”或“-”后面仅跟小时).一位数的小时数有前导零.例如,太平洋标准时间是“-08”.
zzz 完整时区偏移量(“+”或“-”后面跟有小时和分钟).一位数的小时数和分钟数有前导零.例如,太平洋标准时间是“-08:00”.
: 在 TimeSeparator 中定义的默认时间分隔符.
/ 在 DateSeparator 中定义的默认日期分隔符.
% c 其中 c 是格式模式(如果单独使用).如果格式模式与原义字符或其他格式模式合并,则可以省略“%”字符.
" c 其中 c 是任意字符.照原义显示字符.若要显示反斜杠字符,请使用“""”.
只有上面第二个表中列出的格式模式才能用于创建自定义模式;在第一个表中列出的标准格式字符不能用于创建自定义模式.自定义模式的长度至少为两个字符;例如,
DateTime.ToString( "d") 返回 DateTime 值;“d”是标准短日期模式.
DateTime.ToString( "%d") 返回月中的某天;“%d”是自定义模式.
DateTime.ToString( "d ") 返回后面跟有一个空白字符的月中的某天;“d”是自定义模式.
比较方便的是,上面的参数可以随意组合,并且不会出错,多试试,肯定会找到你要的时间格式
如要得到2005年06月 这样格式的时间
可以这样写:
date.ToString("yyyy年MM月", DateTimeFormatInfo.InvariantInfo)
再问: string.PadLeft(),这些老师都没讲过,哪里可以找到?Console.WriteLine(“{0}",f);可不可想C语言中在”“中设格式?您回答的这些代码是怎样做到的,像编译器一样?
再答: 额,有什么问题首先可以问身边的人、自己百度或者自己查一下MSDN:http://msdn.microsoft.com/zh-cn/default.aspx 实在不行就像你现在这样上百度知道问... 大家都是这样的一个学习积累的过程
再问: 您可以把其他两个问题也回答一下吗?-_-
再答: 链接发出来啊,有空的话帮你看看
再问: 不是饿,话没说清楚,是第一次追问的时候,我问了三个问题。您只答了一个。
再答: Console.WriteLine("{0, 5}", f.ToString("0.00"));//这样也可以我这些代码是怎样做到的?这个我不太明白你是啥意思...
我是在VS2008里编辑的,然后拷贝过来的,百度知道里有高亮显示并格式化代码的功能:
c#能不能像C语言那样控制输出数字所占的位数
C语言如何控制输出数字的有效位数?
c语言,从键盘输入一个3位数的正整数,要求先后输出该数的百位数字与个位数字,各占一行
Matlab能不能像C语言那样定义空函数?
c语言判断一个数是几位数并输出各位数字
C语言“输入一个大于10的数字,输出它是几位数.用循环语句”
C语言 给出一个不多于5位的正整数.1.输出它是几位数 2.输出每一位数字 3.按逆序输出各位数字,
C语言 给出一个不多于4位的正整数.1.输出它是几位数 2.输出每一位数字 3.按逆序输出各位数字,
C语言:输入一个多于5位的正整数,要求:求它是几位数,分别输出每一个数字,按逆序输出各位数字
用C语言编写程序,随机输出一个使用0~9是个数字组成无重复的七位数
用C语言输出所有6位数的回文数
C语言 输出数字三角形