C#判断输入的数字是否符合货币格式

目录

一、用正则表达式判断输入是否符合货币格式

二、用double.TryParse()判断输入是否符合货币格式


一、用正则表达式判断输入是否符合货币格式

// 判断输入是否货币合格
using System.Text.RegularExpressions;
namespace IsCurrency_Format
{
    partial class Program
    {
        static void Main(string[] args)
        {
            ArgumentNullException.ThrowIfNull(args);

            Console.WriteLine("请输入要判断的字符串(货币格式)");
            string input = Console.ReadLine()!.ToString();

            bool isValidFormat = IsCurrencyFormat(input);

            if (isValidFormat)
            {
                Console.WriteLine("该字符串是有效的货币格式!");
            }
            else
            {
                Console.WriteLine("该字符串不是有效的货币格式!");
            }    
            Console.ReadKey();// 等待按任意键结束程序
        }

        static bool IsCurrencyFormat(string input)
        {
            Regex regex = MyRegex();
            return regex.IsMatch(input);
        }

        [GeneratedRegex(@"^[+-]?\d+(,\d{3})*(\.\d{1,2})?$")]
        private static partial Regex MyRegex();
    }
}
//运行结果:
/*
请输入要判断的字符串(货币格式)
88888.88
该字符串是有效的货币格式!
 */

二、用double.TryParse()判断输入是否符合货币格式

//判断输入是否符合货币格式
using System.Globalization;
namespace _051
{
    public partial class Form1 : Form
    {
        private GroupBox? groupBox1;
        private Button? button1;
        private TextBox? textBox2;
        private TextBox? textBox1;
        private Label? label2;
        private Label? label1;

        public Form1()
        {
            InitializeComponent();
            Load += Form1_Load;
        }
        private void Form1_Load(object? sender, EventArgs e)
        {
            // 
            // button1
            // 
            button1 = new Button
            {
                Location = new Point(209, 65),
                Name = "button1",
                Size = new Size(75, 23),
                TabIndex = 4,
                Text = "判断",
                UseVisualStyleBackColor = true
            };
            button1.Click += Button1_Click;
            // 
            // textBox2
            // 
            textBox2 = new TextBox
            {
                Location = new Point(77, 65),
                Name = "textBox2",
                Size = new Size(126, 23),
                TabIndex = 3
            };
            // 
            // textBox1
            //      
            textBox1 = new TextBox
            {
                Location = new Point(77, 27),
                Name = "textBox1",
                Size = new Size(126, 23),
                TabIndex = 2
            };
            // 
            // label2
            //          
            label2 = new Label
            {
                AutoSize = true,
                Location = new Point(6, 71),
                Name = "label2",
                Size = new Size(68, 17),
                TabIndex = 1,
                Text = "转换结果:"
            };
            // 
            // label1
            //            
            label1 = new Label
            {
                AutoSize = true,
                Location = new Point(6, 30),
                Name = "label1",
                Size = new Size(68, 17),
                TabIndex = 0,
                Text = "输入金额:"
            };
            // 
            // groupBox1
            // 
            groupBox1 = new GroupBox
            {
                Location = new Point(12, 12),
                Name = "groupBox1",
                Size = new Size(290, 117),
                TabIndex = 0,
                TabStop = false,
                Text = "是否符合货币格式"
            };
            groupBox1.Controls.Add(button1);
            groupBox1.Controls.Add(textBox2);
            groupBox1.Controls.Add(textBox1);
            groupBox1.Controls.Add(label2);
            groupBox1.Controls.Add(label1);
            groupBox1.SuspendLayout();
            
            // 
            // Form1
            // 
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            ClientSize = new Size(314, 141);
            Controls.Add(groupBox1);
            Name = "Form1";
            StartPosition = FormStartPosition.CenterScreen;
            Text = "判断是否符合货币格式";
            groupBox1.ResumeLayout(false);
            groupBox1.PerformLayout();
        }

        private void Button1_Click(object? sender, EventArgs e)
        {
            if (double.TryParse(textBox1!.Text, out double temp))   //验证输入是否正确并赋值
            {
                NumberFormatInfo GN =new CultureInfo("zh-CN", false).NumberFormat;//实例化NumberFormatInfo对象
                GN.CurrencyGroupSeparator = ",";        //设置货币值中用来分组的字符串
                textBox2!.Text = temp.ToString("C", GN);//格式化为货币格式并显示
            }
            else
            {
                MessageBox.Show("请输入正确的货币值!", "提示!");
            }
        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/331522.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

直播间的秒杀狂热背后,猫眼电影如何接住10w+并发运营活动?

“倒数,5、4、3、2、1” “10万张!” “20秒没了” 上周末,张家辉和导演马浴柯带着新电影《怒潮》上了疯狂小杨哥的直播间,人数一度冲破80万人。 这次直播,是猫眼电影为新电影《怒潮》准备的一次宣传活动。 随着小…

44.5K Star,简单易用自动化运维监控工具

Hi,骚年,我是大 G,公众号「GitHub指北」会推荐 GitHub 上有趣有用的项目,一分钟 get 一个优秀的开源项目,挖掘开源的价值,欢迎关注。 今天介绍一个开源的自动化运维监控工具,它是一个轻量的开源…

【银行测试】银行项目,信用卡业务测试+常问面试(三)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 银行测试-信用卡业…

3D划桨效果,效果请看gif图

纯本地文件的html <!doctype html> <html lang"en"> <head><meta charset"UTF-8"><meta name"Keywords" content""><meta name"Description" content""><title>please…

跨Android、iOS、鸿蒙多平台框架ArkUI-X

ArkUI是一套构建分布式应用界面的声明式UI开发框架。它使用极简的UI信息语法、丰富的UI组件、以及实时界面预览工具&#xff0c;帮助您提升移动应用界面开发效率30%。您只需使用一套ArkTS API&#xff0c;就能在Android、iOS、鸿蒙多个平台上提供生动而流畅的用户界面体验。 一…

Nginx深度解析

Nginx是一个开源的高性能Web服务器&#xff0c;广泛用于提供HTTP服务。 它以其高效能、稳定性和低资源消耗而闻名。 Nginx的核心特性 异步非阻塞事件驱动架构&#xff1a;Nginx的主要优势之一是它的异步非阻塞处理方式&#xff0c;这使得它在处理大量并发连接时非常高效。轻量…

Spring 中 HttpServletRequest 作为成员变量是安全的吗?

在使用spring框架开发的时候&#xff0c;经常会在controller类中看到 HttpServletRequest 对象参数&#xff0c;一般我们都是直接使用&#xff0c;但是它是何时、怎么注入到 spring 容器的呢 &#xff1f;另外以成员变量注入的 request 是线程安全的吗 ? Controller public c…

关于微信小程序 “扫普通链接二维码打开小程序”动态传递多个参数开发过程记录与总结

前言&#xff1a;项目中需要线下 扫描二维码 进入到小程序指定的页面&#xff0c;二维码中 要动态传递多个参数&#xff0c;接下来看看具体怎么实现&#xff0c;整个过程还比较顺利&#xff0c;特把整个过程中遇到的坑点做以总结。 快速跳转官网文档介绍&#xff1a;扫码打开小…

【数据结构】二叉树(遍历,递归)

&#x1f308;个人主页&#xff1a;秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343&#x1f525; 系列专栏&#xff1a;《数据结构》https://blog.csdn.net/qinjh_/category_12536791.html?spm1001.2014.3001.5482 ​​​ 目录 二叉树遍历规则 前序遍历 ​…

Pure-admin框架 Pure-table中获取所选中的内容的信息

最近在尝试使用Pure-admin框架来进行开发&#xff0c;正好遇到了多选表格需要获取选中项的id的情况&#xff0c;因为平台介绍说是二次封装 element-plus 的 Table &#xff0c;直接拿el-table的方法来试 在table上设置属性ref"multipleTableRef" let idArr [];mult…

使用Python的pygame库实现下雪的效果

使用Python的pygame库实现下雪的效果 关于Python中pygame游戏模块的安装使用可见 https://blog.csdn.net/cnds123/article/details/119514520 先给出效果图&#xff1a; 源码如下&#xff1a; import pygame import random# 初始化pygame pygame.init()# 设置屏幕尺寸 width…

C# 线程间操作无效: 从不是创建控件的线程访问它--多线程操作

我们在用线程操作的时候&#xff0c;可能会出现异常&#xff1a;线程间操作无效: 从不是创建控件richTextBox1的线程访问它。因为windows窗体控件不是线程安全的&#xff0c;如果几个线程操作某一控件的状态&#xff0c;可能会使该控件的状态不一致&#xff0c;出现争用或死锁状…

springBoot项目打包发布

打包 项目代码编写完成后&#xff0c;在pom.xml文件中引用打包的插件&#xff1a; <!-- 打包插件坐标--><build><plugins><!--打包插件--><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-mave…

洗地吸拖一体机什么牌子好?性能超好的洗地机推荐

科技时代的快速发展带来了大量智能清洁家电&#xff0c;其中近年兴起的洗地机为我们的生活带来了极大便利。然而&#xff0c;市面上涌现出众多品牌和型号的洗地机&#xff0c;让人眼花缭乱&#xff0c;难以做出选择。笔者在这里推荐几款性能超好的洗地机推荐&#xff0c;希望能…

137基于matlab的面和线接触的滑块润滑

基于matlab的面和线接触的滑块润滑&#xff0c;基于有限差分法求解面接触滑块润滑的油膜厚度、油膜压力&#xff0c;输出三维可视化结果。程序已调通&#xff0c;可直接运行。 137 matlab油膜压力油膜厚度 (xiaohongshu.com)

在机关单位上班的你,需要掌握这些网络安全知识!

没有网络安全&#xff0c;就没有国家安全。网络安全和保密防护&#xff0c;是机关单位日常工作中不可忽视的重要问题。尤其在涉密单位工作的人员&#xff0c;因工作性质特殊&#xff0c;不仅要了解非涉密网络的安全操作常识&#xff0c;更要重点了解涉密网络的规范行为要点&…

linux docker-compose安装失败解决

1.去github下载到本地 https://github.com/docker/compose/releases/ 2.上传到linux 服务器 mv dokcer-compose-linux-x86_64 /usr/loacal/bin/docker-compose 3.给权限 chmod x /usr/local/bin/docker-compose 4.查看是否安装成功 docker-compose -version 5.卸载 …

鸿蒙原生应用/元服务实战-AGC团队账户

多人及内外结合去开发运营鸿蒙原生应用元服务时&#xff0c;需要用到团队账户&#xff0c;AGC提供了强大的团队角色与权限分工能力。 团队帐号是开发者联盟为实名开发者提供的多个成员帐号登录与权限管理服务。当前团队帐号支持成员参与应用市场&#xff08;付费推广、应用内付…

【Git相关问题】修改代码提交push时的用户名字

最简方法如下&#xff1a; 直接修改Git的用户配置文件 .gitconfig&#xff0c;这个配置文件的路径一般是 C:\Users\本机用户名\.gitconfig 用记事本或编辑器打开&#xff0c;在[user]下即可修改用户名name或邮箱email 参考&#xff1a; 使用Git进行版本控制&#xff0c;不同…

如何实现固定公网地址远程访问本地部署的Termux MySQL数据库

文章目录 前言1.安装MariaDB2.安装cpolar内网穿透工具3. 创建安全隧道映射mysql4. 公网远程连接5. 固定远程连接地址 前言 Android作为移动设备&#xff0c;尽管最初并非设计为服务器&#xff0c;但是随着技术的进步我们可以将Android配置为生产力工具&#xff0c;变成一个随身…