格式字符串

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

案例:

string str=string.Format("{0:C}",0.2);

Console.WriteLine(str);

分析:中文操作系统的结果为:¥0.20 (英文操作系统结果:$0.20)

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

string str=string.Format("{0:C1}",23.15); //输出为:¥23.2(截去会自动四舍五入)

格式化多个object实例

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

Console.WriteLine(str);

2.格式化是进指定数字(格式化成固定的位数,位数不能少于未格式化,只支持整形)

案例:

string str = string.Format("{0:D3}",23);

Console.WriteLine(str);

//精度说明符指示结果字符串中所需的最少数字个数

string str = string.Format("{0:D2}",1234);

Console.WriteLine(str);

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

案例:

//默认小数点后面两位

string str = string.Format("{0:N}",14200);

Console.WriteLine(str);

//自动四舍五入

string str = string.Format("{0:N3}",14200.2458);

4.格式化百分比

案例:

//默认保留百分的两位小数

string str = string.Format("{0:P}",0.24583);

//自动四舍五入

string str = string.Format("{0:P1}",0.24583);

Console.WriteLine(str);

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

案例:

string str = string.Format("{0:0000.00}",12394.039);

Console.WriteLine(str);//输出12394.04

str = string.Format("{0:0000.00}", 194.039);

Console.WriteLine(str);//输出0194.04

str = string.Format("{0:###.##}", 12394.039);

Console.WriteLine(str);//输出12394.04

str = string.Format("{0:####.#}", 194.039);

Console.WriteLine(str);//输出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 str = "";

str = string.Format("{0:d}",System.DateTime.Now);

Console.WriteLine(str);

str = string.Format("{0:D}", System.DateTime.Now);

Console.WriteLine(str);

str = string.Format("{0:f}", System.DateTime.Now);

Console.WriteLine(str);

str = string.Format("{0:F}", System.DateTime.Now);

Console.WriteLine(str);

str = string.Format("{0:g}", System.DateTime.Now);

Console.WriteLine(str);

str = string.Format("{0:G}", System.DateTime.Now);

Console.WriteLine(str);

str = string.Format("{0:m}", System.DateTime.Now);

Console.WriteLine(str);

str = string.Format("{0:t}", System.DateTime.Now);

Console.WriteLine(str);

str = string.Format("{0:T}", System.DateTime.Now);

Console.WriteLine(str);

输出依次是:

2015/7/21

2015年7月21日

2015年7月21日 18:09

2015年7月21日 18:09:32

2015/7/21 18:09

2015/7/21 18:09:32

7月21日

18:09

18:09:32

总结一下各种格式标示符

字母

含义

C或c

货币格式

D或d

十进制格式(十进制整数,不要和decimal数据类型混淆)

E或e

指数格式

F或f

固定精度格式

G或g

常用格式

N或n

用逗号分割千位的数字,比如1234会变成1.234

P或p

百分符号格式

R或r

圆整(只用与浮点数)保证一个数字被转换成字符串以后尅再被转回成同样的数字

X或x

16进制格式

案例:

int i = 123456;

Console.WriteLine("{0:C}", i);//¥123,456.00

Console.WriteLine("{0:D}", i);//123456

Console.WriteLine("{0:E}", i);//1.234560E+005

Console.WriteLine("{0:F}", i);//123456.00

Console.WriteLine("{0:G}", i);//123456

Console.WriteLine("{0:N}", i);//123,456.00

Console.WriteLine("{0:P}", i);//12,345,600.00%

Console.WriteLine("{0:X}", i);//1E240

精度控制标识符控制了有效 数字的个数或者十进制小数的位数.

int i = 123456;

Console.WriteLine(" {0:C5}", i);//¥123,456.00

Console.WriteLine("{0:D5}", i);//123456

Console.WriteLine("{0:E5}", i);//1.23456E+005

Console.WriteLine("{0:F5}", i);//123456.00000

Console.WriteLine("{0:G5}", i);//1.23456E5

Console.WriteLine("{0:N5}", i);//123,456.00000

Console.WriteLine("{0:P5}", i);//12,345,600.00000%

Console.WriteLine("{0:X5}", i);//1E240

如果标准格式化标识符还不能满足你.可以使用图形化格式字符串来创建定制的字符串输出.图形化格式化使用占位符来表示最小位数,最大位数,定位符号,负号的外观以及其他数字符号的外观.下表:

符号

名称

含义

0

0占位符

用0填充不足的位数

#

数字占位符

用#代替实际的位数

.

十进制小数点

 

,

千位分隔符

用逗号进行千位分隔,比如把1000分割成1,000

%

百分号符

显示一个百分标识

E+0E-0e+0e-0

指数符号

用指数符号格式化输出

‘ABC’ ”ABC”

常量字符串

显示单引号或者双引号里面的字符串

;

区域分隔符

如果数字会被格式化成整数,负数,或者0,用;来进行分割

,.

缩放符号

数字除以1000

案例:

double i = 123456.42;

Console.WriteLine();

Console.WriteLine("{0:000000.00}", i);//123456.42

Console.WriteLine("{0:00.00000000e+0}", i);//12.34564200e+4

Console.WriteLine("{0:0,.}", i);//123

Console.WriteLine("{0:#0.000}", i);//123456.420

Console.WriteLine("{0:#0.000;(#0.000)}", i);//123456.420

Console.WriteLine("{0:#0.000;(#0.000);<zero>}", i);//123456.420

Console.WriteLine("{0:#%}", i);//12345642%

i = -123456.42;

Console.WriteLine();

Console.WriteLine("{0:000000.00}", i);//-123456.42

Console.WriteLine("{0:00.00000000e+0}", i);//-12.34564200e+4

Console.WriteLine("{0:0,.}", i);//-123

Console.WriteLine("{0:#0.000}", i);//-123456.420

Console.WriteLine("{0:#0.000;(#0.000)}", i);//(123456.420)

Console.WriteLine("{0:#0;(#0);<zero>}", i);//(123456)

Console.WriteLine("{0:#%}", i);//-12345642%

i = 0;

Console.WriteLine();

Console.WriteLine("{0:0,.}", i);//0

Console.WriteLine("{0:#0}", i);//0

Console.WriteLine("{0:#0;(#0)}", i);//0

Console.WriteLine("{0:#0;(#0);<zero>}", i);//<zero>

Console.WriteLine("{0:#%}", i);//%

转载于:https://www.cnblogs.com/FinleyJiang/p/7602635.html

C#编程(四十五)----------格式字符串相关推荐

  1. 四十五、深入Java的网络编程(上篇)

    @Author:Runsen @Date:2020/6/8 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏艰 ...

  2. Python编程基础:第四十五节 方法链Method Chaining

    第四十五节 方法链Method Chaining 前言 实践 前言 方法链是指一个对象一次调用其自身的多个方法,通常写作对象.方法1.方法2.由于这种调用方法看起来像一个链条,所以我们将其称作方法链. ...

  3. 【Visual C++】游戏开发笔记四十五 浅墨DirectX教程十三 深度测试和Z缓存专场

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接: http://blog.csdn.net/zhmxy555/article/details/8607864 作者:毛星云(浅墨 ...

  4. 【正点原子STM32连载】第四十五章 SD卡实验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1

    1)实验平台:正点原子MiniPro H750开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=677017430560 3)全套实验源码+手册+视频 ...

  5. 【正点原子Linux连载】第四十五章 pinctrl和gpio子系统实验 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0

    1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...

  6. 第四十五章 SQL函数 DATEPART

    文章目录 第四十五章 SQL函数 DATEPART 大纲 参数 描述 Datepart 参数 日期输入格式 无效的参数错误代码 范围和值检查 示例 第四十五章 SQL函数 DATEPART 日期/时间 ...

  7. 【正点原子STM32连载】 第四十五章 FLASH模拟EEPROM实验 摘自【正点原子】STM32F103 战舰开发指南V1.2

    第四十五章 FLASH模拟EEPROM实验 STM32本身没有自带EEPROM,但是STM32具有IAP(在应用编程)功能,所以我们可以把它的FLASH当成EEPROM来使用.本章,我们将利用STM3 ...

  8. [系统安全] 四十五.APT系列(10)Metasploit后渗透技术信息收集、权限提权和功能模块详解

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  9. NeHe OpenGL教程 第四十五课:顶点缓存

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  10. [Python从零到壹] 四十五.图像增强及运算篇之图像灰度非线性变换详解

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

最新文章

  1. 网络基础之HTTP协议
  2. 在C#中重新抛出异常的正确方法是什么? [重复]
  3. Eclipse反编译工具Jad及插件JadClipse配置
  4. 前端开发群技术文章分享汇总
  5. 在Linux里安装和启动nginx的方法
  6. 不要使用Android Studio的Git Commit了----记一次debug
  7. 高端android手机,高端机型很难选择?这几款手机就很不错,你肯定有中意的
  8. 解密 云HBase时序引擎OpenTSDB 优化技术
  9. oracle PROFILE的使用学习
  10. LeetCode1.两数之和
  11. GeoServer注意点
  12. 串口uart编程——基于imx6ull
  13. 热爱生命 - 汪国真
  14. android操作系统偷流量,运营商在“偷流量”?用实验告诉你真相!
  15. Android自定义View--Flyme6的Viewpager指示器
  16. Application entry file “background.ts“ in the “**dist_electron\win-unpacked\resources\app.asar“ does
  17. cad命令栏怎么调出来_期货文华软件K线图上随着最新价格跳动的黄虚线怎么调出来...
  18. 线性特征与非线性特征、线性模型与非线性模型
  19. matlab 中的 yalmip安装方法
  20. Nginx 根据手机电脑进行不同跳转

热门文章

  1. java二分法找数数_JavaSE语言基础之数组二分法查找
  2. js中typeof用法详细介绍
  3. StringUtils中 isNotEmpty 和isNotBlank的区别
  4. 第章量子计算机产业,又一个世界第一,九章量子计算机诞生,中国战斗机智能空战不是梦...
  5. 蓝牙模块引起电路干扰
  6. 2021年春季学期-信号与系统-第三次作业参考答案-第三道题
  7. 两个大功率肖特基二极管的V-A特性
  8. 当铅笔芯加上直流电压的时候
  9. 机械爪角度与距离之间的关系
  10. MAX9814高性能麦克风