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. 网站web.cofig配置用户的权限

    访问被拒绝. 说明: 访问服务此请求所需的资源时出错.服务器可能未配置为访问所请求的 URL. 错误消息 401.2.: 未经授权: 服务器配置导致登录失败.请验证您是否有权基于您提供的凭据和 Web ...

  2. 什么是 CAS 机制?

    1.Synchronized关键字 Synchronized关键字会让没有得到锁资源的线程进入BLOCKED状态,而后在争夺到锁资源后恢复为RUNNABLE状态,这个过程中涉及到操作系统用户模式和内核 ...

  3. 在VC++空工程中使用MFC类,采用Unicode字符集后,运行工程程序报错的解决方案

    创建一个VC++空工程,将Project Properties->General->Use of MFC改为Use MFC in a Shared DLL 新建一个源文件,内容如下 #in ...

  4. 2.alert() 函数

    ①alert() 函数在 JavaScript 中并不常用,但它对于代码测试非常方便. <!DOCTYPE html><html><body> <h1> ...

  5. SpringBoot-(2)-Web的json接口,静态网页,动态页面

    一, 了解注解@Controller和@RestController @Controller:处理Http请求 @RestController:Spring4以后新增注解,相当于@Controller ...

  6. appium(1)-about appium

    about appium Introduction to Appium Appium is an open-source tool for automating native, mobile web, ...

  7. spring+mybatis项目整合

    前辈总结的很详细,贴出链接,参考学习 http://www.open-open.com/lib/view/open1392252233301.html

  8. java to Json or Json to JavaBean

    今天练习,放这里,以后再补充 这里使用的jar包是 net.sf.json.JSONObject package yh.test.t1118; import net.sf.json.JSONArray ...

  9. HDU4565 So Easy! —— 共轭构造、二阶递推数列、矩阵快速幂

    题目链接:https://vjudge.net/problem/HDU-4565 So Easy! Time Limit: 2000/1000 MS (Java/Others)    Memory L ...

  10. BluetoothLE-Multi-Library

    github地址:https://github.com/qindachang/BluetoothLE-Multi-Library BluetoothLE-Multi-Library 一个能够连接多台蓝 ...