C#用double.TryParse(String, Double)方法将字符串类型数字转换为数值类型

目录

一、定义

二、实例


命名空间:

System

程序集:

System.Runtime.dll

一、定义

将数字的字符串表示形式转换为它的等效双精度浮点数。 一个指示转换是否成功的返回值。

cs 复制代码
public static bool TryParse (string? s, out double result);

|------------|----------------------------------------------------------|
| 参数 | 描述 |
| double | 双精度数值 |
| s | 用于转换为数值的字符串 |
| out | 使用out关键字,会将参数通过引用来传递。要注意,如果使用out关键字传递参数,那么此参数在传递前不可以被初始化 |
| result | 如果转换成功,result将得到转换后的数值 |

使用TryParse方法可以有效防止数值转换中的异常。

所有数值类型都有Parse方法,此方法可以方便地将字符串对象转换为数值,但是,如果字符串中的信息不是标准的数值信息,则在转换过程中将会出现异常。从出现异常到捕获异常最后处理异常,这些都是要耗费系统资源的。而TryParse方法的出现就是为了防止转换过程中出现的异常,该方法将会返回一个布尔值,如果转换成功返回true,如果转换不成功则返回false,并不会抛出异常。

二、实例

cs 复制代码
//判断输入的字符串类型的数字是否数字
//TryParse(string s,out double result)
namespace _047
{
    public partial class Form1 : Form
    {
        private Label? label1;
        private TextBox? textBox1;
        private Button? button1;

        public Form1()
        {
            InitializeComponent();
            Load += Form1_Load;
        }
        private void Form1_Load(object? sender, EventArgs e)
        {
            // 
            // label1
            // 
            label1 = new Label
            {
                AutoSize = true,
                Location = new Point(12, 25),
                Name = "label1",
                Size = new Size(80, 17),
                TabIndex = 0,
                Text = "输入货币值:"
            };
            // 
            // textBox1
            // 
            textBox1 = new TextBox
            {
                Location = new Point(12, 45),
                Name = "textBox1",
                Size = new Size(100, 23),
                TabIndex = 1
            };
            // 
            // button1
            //            
            button1 = new Button
            {
                Location = new Point(118, 45),
                Name = "button1",
                Size = new Size(64, 23),
                TabIndex = 2,
                Text = "判断",
                UseVisualStyleBackColor = true
            };
            button1.Click += Button1_Click;
            // 
            // Form1
            // 
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            ClientSize = new Size(194, 91);
            Controls.Add(button1);
            Controls.Add(textBox1);
            Controls.Add(label1);
            Name = "Form1";
            StartPosition = FormStartPosition.CenterScreen;
            Text = "IsDigit?";

        }

        private void Button1_Click(object? sender, EventArgs e)
        {
            if (textBox1!.Text != "")
            {
                if (double.TryParse(//判断输入信息是否正确
               textBox1!.Text, out double temp))
                {
                    label1!.Text = "输入的币值是:" + temp.ToString();
                    MessageBox.Show("输入的数值正确!");//提示正确信息
                    textBox1!.Clear();//清空TextBox
                    label1!.Text = "输入货币值:";
                }
                else
                {
                    MessageBox.Show(//提示错误信息
                        "输入的数值有误,请重新输入!", "提示!");
                }
            }
            else
                MessageBox.Show("输入正确的数值!");//提示正确信息
        }
    }
}
相关推荐
Mr.wangh几秒前
单例模式&阻塞队列详解
java·开发语言·单例模式·多线程·阻塞队列
O败者食尘D6 分钟前
【C#】使用Enigma将Winform或WPF打包成一个exe
c#
nvd118 分钟前
Lit.js 入门介绍:与 React 的对比
开发语言·javascript·react.js
张较瘦_30 分钟前
[论文阅读] 软件工程 | 解决Java项目痛点:DepUpdater如何平衡依赖升级的“快”与“稳”
java·开发语言·论文阅读
HalvmånEver43 分钟前
Linux:基础开发工具(一)
linux·运维·服务器·开发语言·学习·进阶学习
杜子不疼.44 分钟前
【C++】深入拆解二叉搜索树:从递归与非递归双视角,彻底掌握STL容器的基石
开发语言·c++
天若有情6731 小时前
从零实现轻量级C++ Web框架:SimpleHttpServer入门指南
开发语言·前端·c++·后端·mvc·web应用
weixin_456588151 小时前
JVM(java虚拟机)
java·开发语言·jvm
hygge9991 小时前
JVM 内存结构、堆细分、对象生命周期、内存模型全解析
java·开发语言·jvm·经验分享·面试
小二·1 小时前
Java虚拟机(JVM)面试题(51道含答案)
java·开发语言·jvm