0、0的格式化

string.Format("{0:8D8}", 3)//第一个8表示空8个位置,后一个8表示用0填写最多8位数据

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

string.Format("{0:C}",0.2) 结果为:¥0.20 (英文操作系统结果:$0.20)

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

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

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

格式化多个Object实例

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

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

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

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

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

4、格式化百分比

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

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

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”字符。

“##”格式字符串使得值被舍入到小数点前最近的数字,其中零总被舍去。

PS:空格占位符

string.Format("{0,-50}", theObj);//格式化成50个字符,原字符左对齐,不足则补空格
string.Format("{0,50}", theObj);//格式化成50个字符,原字符右对齐,不足则补空格

6、日期格式化

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

String.Format的多格式定义:

这里所谓的多格式是指一个格式项中可以定义1~3个格式参数,每种格式参数用分号(;)隔开。带2个和3个格式参数的格式项所对应的值必须是数值类型的,这样才能判断是否为负数、正数、零。

带1个格式参数:

//以科学计数法的格式输出

double p1 = 1000000;
Response.Write(String.Format("{0:E2}", p1));

带2个格式参数:

/当格式项对应的值为非负数,则选择第一种格式;值为负数则选第二种格式/

double p1 = 10000;
double p2 = -2420.50;
Response.Write(String.Format("{0:#,###0.00;#,###0.000;}<BR>", p1));
Response.Write(String.Format("{0:#,###0.00;#,###0.000;}", p2));

带3个格式参数:

/*当格式项对应的值为正数则选择第一张格式;

负数则为第二中格式;

值等于零则为第三种格式*/

1double p1 = 10000;
double p2 = -2420.50;
double p3 = 0.00;
Response.Write(String.Format("{0:#,###0.00;#,###0.000;#,###0.0000}<BR>", p1));
Response.Write(String.Format("{0:#,###0.00;#,###0.000;#,###0.0000}<BR>", p3));
Response.Write(String.Format("{0:#,###0.00;#,###0.000;#,###0.0000}", p2));

补充:

{0:N2} 中的N3,f3表示格式化之后数据的类型以及小数的位数。如:N2表示带2个小数的数字;

与此类似:

N或者n 表示 数字

F或者f 表示 固定点

E或者e 表示 科学计数法

D或者d 表示 十进制数

X或者x 表示 十六进制

G或者g 表示 常规

C或者c 表示 货币

String.Format和WriteLine遵守同样的格式化规则。格式化的格式如下:”{ N [, M ][: formatString ]}”, arg1, … argN,在这个格式中:

1) N是从0开始的整数,表示要格式化的参数的个数

2) M是一个可选的整数,表示格式化后的参数所占的宽度,如果M是负数,那么格式化后的值就是左对齐的,如果M是正数,那么格式化后的值是右对齐的

3) formatString是另外一个可选的参数,表示格式代码

字母 含义

C或c Currency 货币格式

D或d Decimal 十进制格式(十进制整数,不要和.Net的Decimal数据类型混淆了)

E或e Exponent 指数格式

F或f Fixed point 固定精度格式

G或g General 常用格式

N或n 用逗号分割千位的数字,比如1234将会被变成1,234

P或p Percentage 百分符号格式

R或r Round-trip 圆整(只用于浮点数)保证一个数字被转化成字符串以后可以再被转回成同样的数字

X或x Hex 16进制格式

string str=string.Format(“{0,30:d}{1,10:c}{2,6:c}{3,15:c}”,1234,12,1,10);的输出是这样的

1234 ¥12.00 ¥1.00 ¥10.00

String.Format 大全的更多相关文章

  1. C# String.Format大全

    C# String.Format大全 ? ? ? 十进制的数字 ? ? string.Format("{0:D3}",23) 023 格式化十进制的数字 string.Format ...

  2. C# String.Format大全 去 decimal 后面的 0

    转 http://kwon.iteye.com/blog/1068255  http://blog.csdn.net/tvvbbb/article/details/47256943 public st ...

  3. string.format大全

    字符串的数字格式 stringstr1 =string.Format("{0:N1}",56789);               //result: 56,789.0 strin ...

  4. c# 字符串连接使用“+”和string.format格式化两种方式

    参考文章:http://www.liangshunet.com/ca/201303/218815742.htm 字符串之间的连接常用的两种是:“+”连接.string.format格式化连接.Stri ...

  5. 【转】string.Format对C#字符串格式化

    转自:http://blog.csdn.net/samsone/article/details/7556781 1.格式化货币(跟系统的环境有关,中文系统默认格式化人民币,英文系统格式化美元) str ...

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

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

  7. string.Format格式化用法详解

    1.格式化货币(跟系统的环境有关,中文系统默认格式化人民币,英文系统格式化美元) string.Format("{0:C}",0.2) 结果为:¥0.20 (英文操作系统结果:$0 ...

  8. Js实现string.format

    经常需要动态拼接html字符串,想到用类似于.net的string.format函数比较好,于是找了下,stackoverflow的代码: if (!String.prototype.format) ...

  9. String.Format用法

    http://blog.csdn.net/yohop/article/details/2534907 1.作为参数   名称 说明   Format(String, Object) 将指定的 Stri ...

随机推荐

  1. maven的基本原理和使用

    一.Maven中央存储库 当你建立一个 Maven 的项目,Maven 会检查你的 pom.xml 文件,以确定哪些依赖下载.首先,Maven 将从本地资源库获得 Maven 的本地资源库依赖资源,如 ...

  2. eclipse集成SVN插件-----复制添加插件

    首先从网上下载一个svn的插件包, 将插件包解压, 打开eclipse的文件夹, 将svn插件中features文件夹中的jar复制到eclipse中features文件夹中去: 将svn插件中plu ...

  3. SpringBoot-(6)-日志SLF4j

    一,日志简介: 目前有很多日志框架,SpringBoot内部采用了SLF4j+logback的形式. SpringBoot内部日志库依赖关系如下: 二,日志的分级 常用的Log日志分级如下: /* * ...

  4. eclipse 中PlantUML的安装和使用

    安装: 填写的地址:http://hallvard.github.io/plantuml/ 安装完plantUML后,还要下载一个Graphviz https://pan.baidu.com/s/1g ...

  5. spl处理文件(文件详细信息、文件遍历、查询指定行、写入CSV文件)

    <?php /** * 文件操作 */ //常用操作 $file = new SplFileInfo('D:/workspace/xlyy/spl/test.txt'); $file_info ...

  6. poj 3617 Best Cow Line 解题报告

    题目链接:http://poj.org/problem?id=3617 题目意思:给出一条长度为n的字符串S,目标是要构造一条字典序尽量小,长度为n的字符串T.构造的规则是,如果S的头部的字母 < ...

  7. 字面量(literal)与 C 语言复合字面量(compound literals)

    在计算机科学中,字面量(literal)是用于表达源代码中一个固定值的表示法(notation)(字面量是相对变量常量等定义的,无论是常量还是变量,其值在某一时刻总是确定的,只是变量可以反复赋值.刷新 ...

  8. VOIP语音编码带宽计算

    VOIP Bandwidth consumption naturally depends on the codec used.  VOIP消耗的带宽一般取决于所使用的语音编码. When calcul ...

  9. Thrift之代码生成器Compiler原理及源码详细解析1

    我的新浪微博:http://weibo.com/freshairbrucewoo. 欢迎大家相互交流,共同提高技术. 又很久没有写博客了,最近忙着研究GlusterFS,本来周末打算写几篇博客的,但是 ...

  10. Learning ReactNative (一) : JavaScript模块基本原理与用法

    在使用ReactNative进行开发的时候,我们的工程是模块化进行组织的.在npmjs.com几十万个库中,大部分都是遵循着CommonJS规则的.在ES6中引入了class的概念,从此JavaScr ...