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("输入正确的数值!");//提示正确信息
        }
    }
}
相关推荐
mudtools6 小时前
.NET驾驭Word之力:玩转文本与格式
c#·.net
唐青枫10 小时前
C#.NET 数据库开发提速秘籍:SqlSugar 实战详解
c#·.net
mudtools1 天前
.NET驾驭Word之力:理解Word对象模型核心 (Application, Document, Range)
c#·.net
侃侃_天下1 天前
最终的信号类
开发语言·c++·算法
echoarts1 天前
Rayon Rust中的数据并行库入门教程
开发语言·其他·算法·rust
Aomnitrix1 天前
知识管理新范式——cpolar+Wiki.js打造企业级分布式知识库
开发语言·javascript·分布式
大飞pkz1 天前
【设计模式】C#反射实现抽象工厂模式
设计模式·c#·抽象工厂模式·c#反射·c#反射实现抽象工厂模式
每天回答3个问题1 天前
UE5C++编译遇到MSB3073
开发语言·c++·ue5
伍哥的传说1 天前
Vite Plugin PWA – 零配置构建现代渐进式Web应用
开发语言·前端·javascript·web app·pwa·service worker·workbox
小莞尔1 天前
【51单片机】【protues仿真】 基于51单片机八路抢答器系统
c语言·开发语言·单片机·嵌入式硬件·51单片机