String.Format 方法的几种定义:

String.Format (String, Object) 将指定的 String 中的格式项替换为指定的 Object 实例的值的文本等效项。
String.Format (String, Object[]) 将指定 String 中的格式项替换为指定数组中相应 Object 实例的值的文本等效项。
String.Format (IFormatProvider, String, Object[]) 将指定 String 中的格式项替换为指定数组中相应 Object 实例的值的文本等效项。指定的参数提供区域性特定的格式设置信息。
String.Format (String, Object, Object) 将指定的 String 中的格式项替换为两个指定的 Object 实例的值的文本等效项。 
String.Format (String, Object, Object, Object) 将指定的 String 中的格式项替换为三个指定的 Object 实例的值的文本等效项。

常用的格式化数值结果表

字符

说明

示例

输出

C 货币 string.Format("{0:C3}", 2) $2.000
D 十进制 string.Format("{0:D3}", 2) 002
E 科学计数法 1.20E+001 1.20E+001
G 常规 string.Format("{0:G}", 2) 2
N 用分号隔开的数字 string.Format("{0:N}", 250000) 250,000.00
X 十六进制 string.Format("{0:X000}", 12) C
    string.Format("{0:000.000}", 12.2) 012.200

常用的几种实例

1、字符串的数字格式

1
2
3
4
5
6
7
string str1 =string.Format("{0:N1}",56789);               //result: 56,789.0
string str2 =string.Format("{0:N2}",56789);               //result: 56,789.00
string str3 =string.Format("{0:N3}",56789);               //result: 56,789.000
string str8 =string.Format("{0:F1}",56789);               //result: 56789.0
string str9 =string.Format("{0:F2}",56789);               //result: 56789.00
string str11 =(56789 / 100.0).ToString("#.##");           //result: 567.89
string str12 =(56789 / 100).ToString("#.##");             //result: 567

2、格式化货币(跟系统的环境有关,中文系统默认格式化人民币,英文系统格式化美元)

1
string.Format("{0:C}",0.2)

结果为:¥0.20 (英文操作系统结果:$0.20)

默认格式化小数点后面保留两位小数,如果需要保留一位或者更多,可以指定位数

1
string.Format("{0:C1}",23.15)

结果为:¥23.2 (截取会自动四舍五入)

格式化多个Object实例

1
string.Format("市场价:{0:C},优惠价{1:C}",23.15,19.82)

3、格式化十进制的数字(格式化成固定的位数,位数不能少于未格式化前,只支持整形)

1
2
string.Format("{0:D3}",23) //结果为:023
string.Format("{0:D2}",1223) //结果为:1223,(精度说明符指示结果字符串中所需的最少数字个数。)

4、用分号隔开的数字,并指定小数点后的位数

1
2
string.Format("{0:N}", 14200) //结果为:14,200.00 (默认为小数点后面两位)
string.Format("{0:N3}", 14200.2458) //结果为:14,200.246 (自动四舍五入)

5、格式化百分比

1
2
string.Format("{0:P}", 0.24583) //结果为:24.58% (默认保留百分的两位小数)
string.Format("{0:P1}", 0.24583) //结果为:24.6% (自动四舍五入)

6、零占位符和数字占位符

1
2
3
4
string.Format("{0:0000.00}", 12394.039) //结果为:12394.04
string.Format("{0:0000.00}", 194.039) //结果为:0194.04
string.Format("{0:###.##}", 12394.039) //结果为:12394.04
string.Format("{0:####.#}", 194.039) //结果为:194

下面的这段说明比较难理解,多测试一下实际的应用就可以明白了。

零占位符: 如果格式化的值在格式字符串中出现“0”的位置有一个数字,则此数字被复制到结果字符串中。小数点前最左边的“0”的位置和小数点后最右边的“0”的位置确定总在结果字符串中出现的数字范围。 “00”说明符使得值被舍入到小数点前最近的数字,其中零位总被舍去。
数字占位符: 如果格式化的值在格式字符串中出现“#”的位置有一个数字,则此数字被复制到结果字符串中。否则,结果字符串中的此位置不存储任何值。
请注意,如果“0”不是有效数字,此说明符永不显示“0”字符,即使“0”是字符串中唯一的数字。如果“0”是所显示的数字中的有效数字,则显示“0”字符。 “##”格式字符串使得值被舍入到小数点前最近的数字,其中零总被舍去。

7、日期格式化

1
2
3
4
5
6
7
8
9
string.Format("{0:d}",System.DateTime.Now) //结果为:2009-3-20 (月份位置不是03)
string.Format("{0:D}",System.DateTime.Now) //结果为:2009年3月20日
string.Format("{0:f}",System.DateTime.Now) //结果为:2009年3月20日 15:37
string.Format("{0:F}",System.DateTime.Now) //结果为:2009年3月20日 15:37:52
string.Format("{0:g}",System.DateTime.Now) //结果为:2009-3-20 15:38
string.Format("{0:G}",System.DateTime.Now) //结果为:2009-3-20 15:39:27
string.Format("{0:m}",System.DateTime.Now) //结果为:3月20日
string.Format("{0:t}",System.DateTime.Now) //结果为:15:41
string.Format("{0:T}",System.DateTime.Now) //结果为:15:41:50

  

C# string.format用法详解的更多相关文章

  1. C#中string.format用法详解

    C#中string.format用法详解 本文实例总结了C#中string.format用法.分享给大家供大家参考.具体分析如下: String.Format 方法的几种定义: String.Form ...

  2. C#中string.Format 用法详解

    这篇文章主要介绍了C#中string.format用法,以实例形式较为详细的讲述了string.format格式化的各种用法,非常具有实用价值,需要的朋友可以参考下 本文实例总结了C#中string. ...

  3. python format 用法详解

    format 用法详解 不需要理会数据类型的问题,在%方法中%s只能替代字符串类型 单个参数可以多次输出,参数顺序可以不相同 填充方式十分灵活,对齐方式十分强大 官方推荐用的方式,%方式将会在后面的版 ...

  4. STL string 常见用法详解

    string 常见用法详解 1. string 的定义 //定义string的方式跟基本数据类型相同,只需要在string后跟上变量名即可 string str; //如果要初始化,可以直接给stri ...

  5. Swift - 字符串(String)用法详解

    下面对String常用的属性和方法做个总结 1,判断是否为空:isEmpty 1 2 3 var str:String if str.isEmpty{ } 2,获取字符数量:countElements ...

  6. 关于python format()用法详解

    str.format() 这个特性从python2.6而来 其实实现的效果和%有些类似 不过有些地方更方便 通过位置映射: In [1]: '{0},{1}'.format('kzc',18) Out ...

  7. python format用法详解

    #常用方法:print('{0},{1}'.format('zhangk', 32)) print('{},{},{}'.format('zhangk','boy',32)) print('{name ...

  8. BigDecimal的用法详解(保留两位小数,四舍五入,数字格式化,科学计数法转数字,数字里的逗号处理)

    转自:https://blog.csdn.net/ochangwen/article/details/51531866 一.简介 Java在java.math包中提供的API类BigDecimal,用 ...

  9. c++中string类的详解

    ,<时返回-1,==时返回0  string的子串:string substr(int pos = 0,int n = npos) const;//返回pos开始的n个字符组成的字符串strin ...

随机推荐

  1. HDU 1074 Doing Homework(经典状压dp)

    题目链接  Doing Homework        Ignatius has just come back school from the 30th ACM/ICPC. Now he has a ...

  2. CABAC总结与补充讨论

    在之前的一篇文章CABAC中我们已经对算法中的大部分细节部分做了详细分析,这里做一个总结与拾遗. 总结 CABAC的编码可以分为以下四个部分: 上下文变量的初始化 待编码语法元素二值化 上下文建模(确 ...

  3. 百年老图难倒谷歌AI,兔还是鸭?这是个问题

    上面这张图,画的是鸭子还是兔子? 自从1892年首次出现在一本德国杂志上之后,这张图就一直持续引发争议.有些人只能看到一只兔子,有些人只能看到一只鸭子,有些人两个都能看出来. 心理学家用这张图证明了一 ...

  4. BZOJ4321queue2——DP/递推

    题目描述 n 个沙茶,被编号 1~n.排完队之后,每个沙茶希望,自己的相邻的两 人只要无一个人的编号和自己的编号相差为 1(+1 或-1)就行:  现在想知道,存在多少方案满足沙茶们如此不苛刻的条件. ...

  5. #195 game(动态规划+二分)

    考虑第一问的部分分.显然设f[i]为i子树从根开始扩展的所需步数,考虑根节点的扩展顺序,显然应该按儿子子树所需步数从大到小进行扩展,将其排序即可. 要做到n=3e5,考虑换根dp.计算某点答案时先将其 ...

  6. HDU5773-The All-purpose Zero-多校#41010-最长上升子序列问题

    只想到了朴素的n^2做法,然后发现可以用splay维护.于是调了几个小时的splay... splay的元素是从第二个开始的!第一个是之前插入的头节点! #include <cstdio> ...

  7. appium 原理解析(转载雷子老师博客)

    appium 原理解析 原博客地址:https://www.cnblogs.com/leiziv5/p/6427609.html Appium是 c/s模式的appium是基于 webdriver 协 ...

  8. python+selenium+unnitest写一个完整的登陆的验证

    import unittest from selenium import webdriver from time import sleep class lonInTest (unittest.Test ...

  9. MySQL 报错 1055

    具体报错 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'exer.student.sid' w ...

  10. HihoCoder 1511: 树的方差(prufer序)

    题意 对于一棵 \(n\) 个点的带标号无根树,设 \(d[i]\) 为点 \(i\) 的度数,定义一棵树的方差为数组 \(d[1..n]\) 的方差. 给定 \(n\) ,求所有带标号的 \(n\) ...