当前位置: 首页 > news >正文

C#入门及进阶教程|C#基本语法(五):控制台应用程序与格式化输出

目录

控制台应用程序与格式化输出

1.控制台(Console类)

        1.1控制台输出

        1.2控制台输入

        1.3格式输出的一般形式              

        1.4字符串的格式化输出

        1.5日期和时间的格式化输出


控制台应用程序与格式化输出

1.控制台(Console类)

        1.1控制台输出

Console.Write ();
Console.WriteLine();

        1.2控制台输入

Console.ReadKey();        //标准输入流读取用户按下的字符或功能键。
Console.ReadLine();       //从标准输入流读取一行字符。

        1.3格式输出的一般形式              

        格式输出的一般形式为:  {N [, M][: 格式码]},  其中,[ ]:表示其中的内容为可选项。N:从零开始的整数,表示第几个参数。M:可选整数,表示最小长度。若参数N的长度小于M,就用空格填充。如果M为负,则左对齐;如果M为正,则右对齐;如果未指定M,则默认为零。

格式码:可选的格式化代码字符串。

        常用格式码及举例:

格 式 符

含    义

示例:(int i=10;double x=10.5;)

输出结果

C

将数字按照金额形式输出

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

Console.WriteLine("{0:C}",x);

¥10.00

¥10.50

D

输出十进制整数

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

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

10

00010

F

小数点后固定位数

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

Console.WriteLine("{0:F4}",x);

10.00

10.5000

0

0占位符,如果数字位数不够指定的占位符位数,则左边补0至占位符位数;如果数字位数超过指定的占位符位数,则按照原数字实际位数原样输出。如果小数部分的位数超出指定的占位符位数,则多余的部分四舍五入。

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

Console.WriteLine("{0:000}", 12345);

Console.WriteLine("{0:0000}", 123.64);

Console.WriteLine("{0:00.00}", 123.6484);

00123

12345

0124

123.65

#

#占位符。对整数部分,去掉数字左边的无效0;对小数部分,按照四舍五入原则处理后,再去掉右边的无效0。如果这个数就是0,而又不想让它显示的时候,#占位符很有用

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

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

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

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

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

123

124

123.64

123.65

        1.4字符串的格式化输出

        对于字符串来说,可以直接利用格式化输出得到希望的格式,例如:        

string s = string.Format("{0, 30}", ' ');  //s得到的结果为30个空格的字符串
string s1 =string.Format("{0, -20}", "15"); //s1得到的结果为左对齐长度为20的字符串

        常用格式举例:

        1) 在ToString中使用d格式

int i = 12345;
// i.ToString("d")表示将i按照实际整数宽度转换为字符串
string str = i.ToString("d");
Console.WriteLine(str);   //结果12345
// i.ToString("d8")表示将i转换为字符串,宽度为8位,不够8位左边用0填充
string str1 = i.ToString("d8");
Console.WriteLine(str1);  //结果00012345

        2)在string.Format中使用d格式

int i = 123;
// {0,7:d}表示第0个参数,宽度7位,不够7位左边用空格填充,d表示十进制整数
string s1 = string.Format("the value is {0,7:d}",i);
Console.WriteLine(s1);   //结果 the value is 123

        3) 在ToString中使用f格式

double i = 12345.6789;
// f2表示浮点数小数部分为2位,多余部分四舍五入,不够2位时右边补零
string str = i.ToString("f2");
Console.WriteLine(str);   //结果 12345.68
string str1 = i.ToString("f6");
Console.WriteLine(str1);  //结果 12345.678900

        4) 在ToString中使用n格式

double i = 12345.6789;
// n表示整数部分从小数点向左每3位用逗号分隔开,小数部分2位,多余部分四舍五入
string str = i.ToString("n");
Console.WriteLine(str);   //结果 12,345.68
// n4表示整数部分从小数点向左每3位用逗号分隔开,小数部分4位,多余部分四舍五入
string str1 = i.ToString("n4");
Console.WriteLine(str1);  //结果 12,345.6789

        5) 在ToString中使用p格式

double i = 0.126;
// p表示百分数形式
string s = string.Format("the value is {0:p}",i);
Console.WriteLine(s);    //结果 the value is 12.60%
string str = i.ToString("p");
Console.WriteLine(str);   //结果 12.60%

        1.5日期和时间的格式化输出

DateTime dt = new DateTime(2006,5,25);
// yy表示年占两位,M表示月占1位,超出1位按实际位数
// d表示日占1位,超出1位按实际位数
string str = dt.ToString("yy.M.d");
Console.WriteLine(str);   //结果 06.5.25
//yyyy表示年占4位,M表示月占1位,超出1位按实际位数,其他按原字符输出
string str1 = dt.ToString("yyyy年M月");
Console.WriteLine(str1);  //结果 2006年5月

相关文章:

  • 【NTN 卫星通信】TN 和 NTN的Inter-PLMN应用场景
  • 【Django】Cookie和Session的使用
  • python将.db数据库文件转成Excel文档
  • VCG 网格中点细分
  • VMware虚拟机安装macOS
  • 政安晨:示例演绎Python语言的字符串与字典
  • ywtool login guard命令
  • 虚幻5源码版打包服务端
  • React 组件跨层级数据共享:createContext、useContext、useMemo
  • spring boot打完jar包后使用命令行启动,提示xxx.jar 中没有主清单属性
  • ReactNative实现一个圆环进度条
  • Docker进阶篇-Docker网络
  • 用Python Tkinter打造的精彩连连看小游戏【附源码】
  • 毫米波雷达在汽车领域的原理、优势和未来趋势
  • 计算机网络_1.6.3 计算机网络体系结构分层思想举例
  • python3.6+scrapy+mysql 爬虫实战
  • [译]如何构建服务器端web组件,为何要构建?
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • exports和module.exports
  • github从入门到放弃(1)
  • js面向对象
  • Mysql5.6主从复制
  • PHP CLI应用的调试原理
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • Windows Containers 大冒险: 容器网络
  • 记录:CentOS7.2配置LNMP环境记录
  • 跳前端坑前,先看看这个!!
  • 网页视频流m3u8/ts视频下载
  • 硬币翻转问题,区间操作
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • 树莓派用上kodexplorer也能玩成私有网盘
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • #HarmonyOS:基础语法
  • #Ubuntu(修改root信息)
  • ${factoryList }后面有空格不影响
  • %@ page import=%的用法
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (黑马C++)L06 重载与继承
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (转)Android学习笔记 --- android任务栈和启动模式
  • (转)Oracle 9i 数据库设计指引全集(1)
  • (转)大型网站架构演变和知识体系
  • .a文件和.so文件
  • .NET MVC 验证码
  • .net 流——流的类型体系简单介绍
  • /usr/local/nginx/logs/nginx.pid failed (2: No such file or directory)
  • @Autowired自动装配
  • @transaction 提交事务_【读源码】剖析TCCTransaction事务提交实现细节
  • [ vulhub漏洞复现篇 ] AppWeb认证绕过漏洞(CVE-2018-8715)
  • [ vulhub漏洞复现篇 ] Django SQL注入漏洞复现 CVE-2021-35042
  • [ 云计算 | AWS 实践 ] 基于 Amazon S3 协议搭建个人云存储服务