C#(六十)之Convert类 和 Parse方法的区别
Convert数据类型转换类,从接触C#开始,就一直在用,这篇日志坐下深入的了解。
Convert类常用的类型转换方法
| 方法 | 说明 |
| Convert.ToInt32() | 转换为整型(int) |
| Convert.ToChar() | 转换为字符型(char) |
| Convert.ToString() | 转换为字符串型(string) |
| Convert.ToDateTime() | 转换为日期型(datetime) |
| Convert.ToDouble() | 转换为双精度浮点型(double) |
| Conert.ToSingle() | 转换为单精度浮点型(float) |
长类型(int、long)转换成短类型(byte、short)需要考虑容量的问题
转换为int型数据后进行了四舍五入的计算。
用convert类转换时注意数据表达方式的有效性,并不是任意类型之间都可以转换。比如string类型转int类型,string只能是数字。
示例:
int a = 1234;string asd = Convert.ToString(a);Console.WriteLine(asd); // 1234Console.WriteLine(asd.GetType()); // System.stringchar qwe = Convert.ToChar(a);Console.WriteLine(qwe); // ? 字符只能是一位Console.WriteLine(qwe.GetType()); // System.Charstring dc = "4125";int ws = Convert.ToInt32(dc);Console.WriteLine(ws); // 4125Console.WriteLine(ws.GetType()); // System.Int32string dates = "2019-05-31"; // 必须是字符串才能转换成datetimeDateTime qa = Convert.ToDateTime(dates);Console.WriteLine(qa); // 2019/5/31 0:00:00Console.WriteLine(qa.GetType()); // System.DateTimestring zxc = "5.32";double po = Convert.ToDouble(zxc);Console.WriteLine(po); // 5.32Console.WriteLine(po.GetType());// System.Doublefloat rf = Convert.ToSingle(zxc);Console.WriteLine(rf); // 5.32Console.WriteLine(rf.GetType());// System.single
Convert 和 Parse区别:
1.Convert.ToDouble与Double.Parse的区别。实际上Convert.ToDouble与 Double.Parse 较为类似,实际上 Convert.ToDouble内部调用了 Double.Parse:(1)对于参数为null的时候:
Convert.ToDouble参数为 null 时,返回 0.0; double wer = Convert.ToDouble(null); // 0
Console.WriteLine(wer);
Double.Parse 参数为 null 时,抛出异常。
double ed = Double.Parse(null); // 报错
Console.WriteLine(ed);
(2)对于参数为""的时候:
Convert.ToDouble参数为 "" 时,抛出异常;
wer = Convert.ToDouble("");
Console.WriteLine(wer);
Double.Parse 参数为 "" 时,抛出异常。
double ed = Double.Parse("");
Console.WriteLine(ed);
(3)其它区别:
Convert.ToDouble可以转换的类型较多;
Double.Parse 只能转换数字类型的字符串。
Double.TryParse 与 Double.Parse 又较为类似,但它不会产生异常,转换成功返回 true,转换失败返回 false。最后一个参数为输出值,如果转换失败,输出值为 0.0。
2.Convert.ToInt32()与int.Parse()的区别
(1)这两个方法的最大不同是它们对null值的处理方法:
Convert.ToInt32(null)会返回0而不会产生任何异常,但int.Parse(null)则会产生异常。
int cdf = Convert.ToInt32(null); // 0
Console.WriteLine(cdf);
int pol = int.Parse(null); // 报错
Console.WriteLine(pol);
(2)对数据进行四舍五入时候的区别
a. Convert.ToInt32(double value)
如果 value 为两个整数中间的数字,则返回二者中的偶数;即 3.5转换为4,4.5 转换为 4,而 5.5 转换为 6。 不过4.6可以转换为5,4.4转换为4
int ppp = Convert.ToInt32(5.5); // 6
Console.WriteLine(ppp);
b. int.Parse("4.5")
直接报错:"输入字符串的格式不正确".
int aaa = int.Parse("4.5"); // 报错
Console.WriteLine(aaa);
c. int(4.6) = 4
Int转化其他数值类型为Int时没有四舍五入,强制转换
int lkj = (int)4.9;
Console.WriteLine(lkj); // 4
(3)对被转换类型的区别
int.Parse是转换String为int
Convert.ToInt32是转换继承自Object的对象为int的(可以有很多其它类型的数据).
你得到一个object对象,你想把它转换为int,用int.Parse就不可以,要用Convert.ToInt32.
object obj = new object();
obj = (object)4;
int aaaaa = Convert.ToInt32(obj);
Console.WriteLine(aaaaa);int bbbbb = int.Parse(obj); // 这样写报错
测试使用全部代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace Convertss
{class Program{static void Main(string[] args){int a = 1234;string asd = Convert.ToString(a);Console.WriteLine(asd); // 1234Console.WriteLine(asd.GetType()); // System.stringchar qwe = Convert.ToChar(a);Console.WriteLine(qwe); // ? 字符只能是一位Console.WriteLine(qwe.GetType()); // System.Charstring dc = "4125";int ws = Convert.ToInt32(dc);Console.WriteLine(ws); // 4125Console.WriteLine(ws.GetType()); // System.Int32string dates = "2019-05-31"; // 必须是字符串才能转换成datetimeDateTime qa = Convert.ToDateTime(dates);Console.WriteLine(qa); // 2019/5/31 0:00:00Console.WriteLine(qa.GetType()); // System.DateTimestring zxc = "5.32";double po = Convert.ToDouble(zxc);Console.WriteLine(po); // 5.32Console.WriteLine(po.GetType());// System.Doublefloat rf = Convert.ToSingle(zxc);Console.WriteLine(rf); // 5.32Console.WriteLine(rf.GetType());// System.singledouble wer = Convert.ToDouble(null); // 0Console.WriteLine(wer);/*double ed = Double.Parse(null); // 报错Console.WriteLine(ed);//*//* wer = Convert.ToDouble("");Console.WriteLine(wer);double ed = Double.Parse("");Console.WriteLine(ed);//*/int cdf = Convert.ToInt32(null); // 0Console.WriteLine(cdf);/*int pol = int.Parse(null); // 报错Console.WriteLine(pol);//*/int ppp = Convert.ToInt32(5.5); // 6Console.WriteLine(ppp);/*int aaa = int.Parse("4.5"); // 报错Console.WriteLine(aaa);//*/int lkj = (int)4.9;Console.WriteLine(lkj); // 4object obj = new object();obj = (object)4;int aaaaa = Convert.ToInt32(obj);Console.WriteLine(aaaaa);// int bbbbb = int.Parse(obj); // 这样写报错Console.ReadLine();}}
}
有好的建议,请在下方输入你的评论。

相关文章:
C#(六十)之Convert类 和 Parse方法的区别
Convert数据类型转换类,从接触C#开始,就一直在用,这篇日志坐下深入的了解。 Convert类常用的类型转换方法 方法 说明 Convert.ToInt32() 转换为整型(int) Convert.ToChar() 转换为字符型(char) Convert.ToString() 转换为字符串型(st…...
暑期代码每日一练Day3:874. 模拟行走机器人
题目 874. 模拟行走机器人 分析 这道题就是个简单的模拟 主要有两点考察点: 对方向数组的运用 方向数组存储的是各个方向的单位向量,也即: 方向XY向北01向东10向南0-1向西-10 存储在数组中,则是方向数组: in…...
肖sir___环境相关的面试题
环境相关面试题 1、请简述多有米环境的搭建、用到了哪些工具和流程介绍? jdk、服务器、代码包、数据库 2、查看当前端口被哪个应用程序占用了? netstat -ntlp |grep 端口号 lsof -i :端口号 ps -ef|grep 端口号 3、Tomcat和Nginx的区别,ngi…...
代理IP、Socks5代理和SK5代理的前沿技术与未来发展趋势
代理IP的前沿技术应用 人工智能与智能代理:结合人工智能技术,代理IP可以更加智能地处理网络请求和数据流,提高代理效率和准确性。区块链与去中心化代理:通过区块链技术,代理IP可以实现去中心化管理和身份验证…...
VM(CentOS7安装和Linux连接工具以及换源)
目录 一、Linux意义 二、安装VMWare 三、centos7安装 1、正式安装CentOS7: 2、安装不了的解决方案 2.1常见问题——虚拟机开机就黑屏的完美解决办法 3、查看、设置IP地址 ① 查看ip地址:ip addr 或者 ifconfig, 注意与windows环境的区别…...
阿里云斩获 4 项年度云原生优秀案例丨阿里云云原生 6 月动态
云原生月度动态 ✦ CLOUD NATIVE 云原生是企业数字创新的最短路径。 《阿里云云原生每月动态》,从趋势热点、产品新功能、服务客户、开源与开发者动态等方面,为企业提供数字化的路径与指南。 本栏目每月更新。 01 趋势热点 🥇 阿里云 S…...
dede图片集上传图片时出错显示FILEID的解决办法
如果遇到过这问题的,就可以照此方法尝试了。 某日,某使用deecms v5.5的网站在后台上传图片时出现如下错误: 作为web生手的我很是迷茫。印象里之前并没有做什么改动,于是百思不得其解。Google、百度、DeDe官网搜索了一大圈…...
【亲测有效】 通过mysql指令 导出数据库中表名 和 表名的备注
标题你可以使用以下MySQL指令来导出数据库中表名和表名的备注: SELECT table_name, table_comment FROM information_schema.tables WHERE table_schema 你的数据库名;将上述指令中的"你的数据库名"替换为你实际使用的数据库名称,执行该指…...
【Nginx08】Nginx学习:HTTP核心模块(五)长连接与连接处理
Nginx学习:HTTP核心模块(五)长连接与连接处理 HTTP 基础知识大家掌握的怎么样呀?对于长连接这一块的内容应该也不是什么新鲜东西了吧。毕竟 HTTP1.1 都已经发布这么久了。今天主要来看的就是长连接相关的配置,另外还会…...
第八十五天学习记录:C++核心:内存分区模型
内存分区模型 C程序在执行时,将内存大方向划分为4个区域 1、代码区:存放函数体的二进制代码,由操作系统进行管理 2、全局区:存放全局变量和静态变量以及常量 3、栈区:由编译器自动分配释放,存放函数的参数…...
Chrome远程调试webview
网址 谷歌远程调试解决方案 https://blog.csdn.net/m0_56516186/article/details/131260563Chrome远程调试webview https://blog.csdn.net/weixin_44801980/article/details/117755550...
爬虫与反爬虫的攻防对抗
一、爬虫的简介 1 概念 爬虫最早源于搜索引擎,它是一种按照一定的规则,自动从互联网上抓取信息的程序,又被称为爬虫,网络机器人等。按爬虫功能可以分为网络爬虫和接口爬虫,按授权情况可以分为合法爬虫和恶意爬虫。恶…...
【机器学习】特征工程 - 字典特征提取
「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 字典特征提取 一、特征提取API一、提取数字特征二、特征名字三、返回原始数据特征工…...
用户交互----进入游戏
一、增加交互----点击和拖动 1、点击鼠标画点的程序 设置 import pygame # Setup pygame.init() screen pygame.display.set_mode([800,600]) pygame.display.set_caption("单击画圆点") keep_going True RED (255,0,0) …...
排序算法 - 快速排序(4种方法实现)
快速排序 快速排序是啥?三数取中:1.挖坑法(推荐掌握)2.前后指针法(推荐掌握)3.左右指针法(霍尔版本)(容易出错)4.非递归实现 本篇文章的源代码在这࿰…...
C++入门知识点
目录 命名空间 命名空间定义 命名空间使用 法一:加命名空间名称及作用域限定符:: 法二:使用using部分展开(授权)某个命名空间中的成员 法三:使用using对整个命名空间全部展开(授权…...
开眼界了,AI绘画商业化最强玩家是“淘宝商家”
图片来源:由无界AI生成 7月,2023世界人工智能大会在上海召开,顶尖的投资人、创业者都去了。 创业者吐槽:投我啊,我很强。 投资人反问:你的商业模式是什么?护城河是什么? 创业者投资人…...
机器学习与深度学习——自定义函数进行线性回归模型
机器学习与深度学习——自定义函数进行线性回归模型 目的与要求 1、通过自定义函数进行线性回归模型对boston数据集前两个维度的数据进行模型训练并画出SSE和Epoch曲线图,画出真实值和预测值的散点图,最后进行二维和三维度可视化展示数据区域。 2、通过…...
大屏项目也不难
项目环境搭建 使用create-vue初始化项目 npm init vuelatest准备utils模块 业务背景:大屏项目属于后台项目的一个子项目,用户的token是共享的 后台项目 - token - cookie 大屏项目要以同样的方式把token获取到,然后拼接到axios的请求头中…...
c#webclient请求中经常出现的几种异常
WebClient是.NET Framework提供的用于HTTP请求的类,如果在使用WebClient时遇到异常,我们可以根据具体的异常类型进行处理。 以下是一些常见的WebClient异常及其处理方法: System.Net.WebException WebException通常是由于请求超时、网络连…...
CANdb++ Editor高效使用技巧:5个隐藏功能大幅提升dbc编辑效率
CANdb Editor高效使用技巧:5个隐藏功能大幅提升dbc编辑效率 在汽车电子开发领域,Vector的CANdb Editor堪称dbc文件编辑的行业标准工具。大多数工程师都能熟练使用其基础功能,但真正的高手往往掌握着那些鲜为人知的"秘密武器"。本文…...
从锡膏印刷到炉温曲线:手把手调试你的第一条SMT生产线(避坑指南)
从锡膏印刷到炉温曲线:手把手调试你的第一条SMT生产线(避坑指南) 第一次接手SMT生产线调试时,我盯着那台二手贴片机的报警提示,手心全是汗。钢网上残留的锡膏像在嘲笑我的无知,而流水线上堆积的PCB板则不断…...
Pycharm Database工具:一站式数据库可视化操作指南
1. 为什么你需要Pycharm Database工具? 如果你正在用Pycharm写Python代码,特别是开发Web应用时,很可能会遇到需要操作数据库的情况。很多开发者习惯在Pycharm和Navicat这样的独立数据库工具之间来回切换,这其实既浪费时间又影响开…...
深入解析Golang中的占位符:%w、%v、%s的应用与最佳实践
1. Golang占位符基础入门 刚开始接触Golang时,fmt包里的那些百分号开头的占位符确实让我有点懵。记得第一次看到%s、%v、%w这些符号时,我还以为是什么特殊运算符。后来在实际项目中用多了才发现,这些看似简单的占位符,其实是Gola…...
MCprep插件终极指南:从Minecraft世界到专业动画的完整解决方案
MCprep插件终极指南:从Minecraft世界到专业动画的完整解决方案 【免费下载链接】MCprep Blender python addon to increase workflow for creating minecraft renders and animations 项目地址: https://gitcode.com/gh_mirrors/mc/MCprep 你是否曾梦想将Min…...
Pixel Fashion Atelier保姆级教程:如何将生成结果无缝导入Aseprite进行二次编辑
Pixel Fashion Atelier保姆级教程:如何将生成结果无缝导入Aseprite进行二次编辑 1. 教程概述 Pixel Fashion Atelier是一款基于Stable Diffusion与Anything-v5的像素风格图像生成工具,特别适合创作复古RPG风格的时尚设计。本教程将手把手教你如何将生成…...
Cursor功能增强工具使用指南
Cursor功能增强工具使用指南 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your trial request limit. / Too many free t…...
MIB2 High Toolbox:重新定义车载娱乐系统定制体验
MIB2 High Toolbox:重新定义车载娱乐系统定制体验 【免费下载链接】mib2-toolbox The ultimate MIB2-HIGH toolbox. 项目地址: https://gitcode.com/gh_mirrors/mi/mib2-toolbox 车载娱乐系统是否还停留在出厂设置?想要个性化界面却苦于没有工具&…...
【Python张量计算实战宝典】:20年AI架构师亲授5大高频场景优化技巧,错过再等一年
第一章:张量计算基础与PyTorch/TensorFlow双框架选型指南张量是深度学习的核心数据结构,本质为多维数组,支持自动微分、GPU加速与动态/静态计算图构建。理解其内存布局(如C-contiguous vs. Fortran-contiguous)、广播机…...
2026必看:八款热门AI编程工具横评
一、AI编程工具榜单综述当下AI技术全面渗透软件开发领域,各类AI编程工具大幅降低了开发门槛、提升了编码效率,成为开发者必备的效率神器。本次横评精选海内外8款主流产品,覆盖AI原生IDE、插件式编程助手等不同形态,全方位盘点各工…...
