《C#零基础入门之百识百例》(六)类型转换 -- 转换用户输入

本文是C#零基础入门系列,介绍类型转换,包括隐式、显示转换以及字符串到数值的Parse和Convert方法。通过实例练习展示了如何转换用户输入的数字,如使用Parse和Convert避免编译错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

本文属于C#零基础入门之百识百例系列文章。此系列文章旨在为学习C#语言的童鞋提供一套系统的学习路径。此系列文章都会通过【知识点】【练习题】的形式呈现。有任何问题,你都可以通过评论私信等方式找到我,我会一对一解答你的问题。


系列文章目录: 导图
《C#零基础入门之百识百例》 目录文章传送门


C#中类型转换主要包括隐式转换、显示转换以及字符串和数值之间的转换三种。下面我们一一学习:

一,隐式转换

在 C# 语言中隐式转换是指不需要其他方法数据类型直接即可转换。

隐式转换主要是在整型、浮点型之间的转换,将存储范围小的数据类型直接转换成存储范围大的数据类型。

示例代码:

int i = 10;
//将int类型转换为double类型
double d = i;
float f = 3.14f;
//将float类型转换为double类型
d = f;    

隐式转换图示:
转换

结合我们前面在《基础数据类型》中学习到的每种类型的取值范围,我们可以发现,隐式数值转换实际上就是从低精度的数值类型到高精度的数值类型的转换。


二,显示转换

强制类型转换主要用于将存储范围大的数据类型转换成存储范围小的,但数据类型需要兼容。

若不进行强制转换,则会编译报错:
在这里插入图片描述

强制类型转换的语法如下:

数据类型 变量名 = (数据类型)  变量名或值;

示例代码如下:

 double PI = 3.1415926;
 int i = (int) PI;

这样虽然能将值进行类型的转换,但损失了数据的精度(示例中i=3,舍去了小数点),造成了数据的不准确,因此在使用强制类型转换时还需要注意数据的准确性。


三,字符串和数值转换

3.1 Parse方法

借助Parse方法可以把string类型数据转换成int、float等多种数值类型。

其语法格式为:

目标类型.Parse(待转换字符串)

示例代码:

string str = "1";
int i = int.Parse(str);

此时已经将字符串"1"转换为了数字1。


3.2 Convert方法

C# Convert 方法是数据类型转换中最灵活的方法,它能够将任意数据类型的值转换成任意数据类型,前提是不要超出指定数据类型的范围。

语法形式如下。

数据类型  变量名 = Convert.To数据类型(变量名);

示例代码:

float f = 3.14f;
int i;
string str;
i = Convert.ToInt32(f);
str = Convert.ToString(f);

Convert类的转换方法整理如下

方法说明
Convert.ToInt16()转换为整型(short)
Convert.ToInt32()转换为整型(int)
Convert.ToInt64()转换为整型(long)
Convert.ToChar()转换为字符型(char)
Convert.ToString()转换为字符串型(string)
Convert.ToDateTime()转换为日期型(datetime)
Convert.ToDouble()转换为双精度浮点型(double)
Conert.ToSingle()转换为单精度浮点型(float)

四,实例练习 – 转换用户输入

4.1 题目描述

用户按规定键盘输入一组数字(0-9999),将其转换为数字int类型的数字,看看你能写出几种写法?

4.2 问题分析

字符串转换数字

  • 方案一:强制转换
  • 方案二: Parse方法
  • 方案三:Convert方法

4.3 参考代码

  • 方案一:强制转换 --> 【编译报错】
class Program
{ 
    static void Main(string[] args)
    {
        string intputNum = Console.ReadLine();
        int x = (int)intputNum;   // 强制转换
        
        Console.ReadKey();
    }
}

结果:编译报错
在这里插入图片描述

  • 方案二: Parse方法 --> 【可行:第6行】
  • 方案三:Convert方法 --> 【可行:第7行】
class Program
{ 
    static void Main(string[] args)
    {
        string intputNum = Console.ReadLine();
        int num1 = int.Parse(intputNum);
        int num2 = Convert.ToInt32(intputNum);
        Console.WriteLine("Parse:{0}, Convert:{1}", num1, num2);
        Console.ReadKey();
    }
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈言必行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值