C#用Math.Round和double.TryParse方法实现四舍五入

2024-01-16 02:20

本文主要是介绍C#用Math.Round和double.TryParse方法实现四舍五入,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一、涉及到的知识点

1.double.TryParse()方法

2.Math.Round(Decimal, Int32)   方法

3.comboBox1没有选项

二、示例

1.源码

2.生成


一、涉及到的知识点

1.double.TryParse()方法

         详见本文作者写的其他文章,

        C#用double.TryParse(String, Double)方法将字符串类型数字转换为数值类型-CSDN博客  https://wenchm.blog.csdn.net/article/details/135593983

2.Math.Round(Decimal, Int32)   方法

        将小数值舍入到指定数量的小数位,并将中点值舍入到最接近的偶数。

public static decimal Round (decimal d, int decimals);参数
d
Decimal
要舍入的小数。decimals
Int32
返回值中的小数位数。返回
Decimal
最接近 d 的 decimals 位小数的数字。例外
ArgumentOutOfRangeException
decimals 小于 0 或大于 28。OverflowException
结果超出了 Decimal 的范围。注解
参数的值 decimals 范围为 0 到 28。此方法使用 的默认舍入约定 MidpointRounding.ToEven。在舍入中点值时,舍入算法执行相等测试。

         Math.Round输出示例:

//示例
Console.WriteLine(Math.Round(3.44m, 1));
Console.WriteLine(Math.Round(3.45m, 1));
Console.WriteLine(Math.Round(3.46m, 1));
Console.WriteLine();Console.WriteLine(Math.Round(4.34m, 1));
Console.WriteLine(Math.Round(4.35m, 1));
Console.WriteLine(Math.Round(4.36m, 1));// The example displays the following output:
//       3.4
//       3.4
//       3.5
//
//       4.3
//       4.4
//       4.4

         由输出结果看,Math.Round的结果不是严格意义的四舍五入,比如Round(3.45,1)=3.4就没有按四舍五入操作,但Round(4.35,1)=4.4就按四舍五入操作了。这是Math.Round定义的规则。

        如果想要严格地执行四舍五入,就需要对Round方法进行重载。

3.comboBox1没有选项

         当没有选项时,comboBox1!.SelectedIndex == -1;

二、示例

1.源码

//用Math.Round和double.TryParse方法实现四舍五入
namespace _048
{public partial class Form1 : Form{private TextBox?textBox1;private TextBox? textBox2;private Label?label1;private Label? label2;private TextBox? textBox3;private ComboBox? comboBox1;private Button? button1;public Form1(){InitializeComponent();Load += Form1_Load;}private void Form1_Load(object?sender, EventArgs e){// // textBox1// textBox1 = new TextBox{Location = new Point(12, 12),Name = "textBox1",Size = new Size(100, 23),TabIndex = 0};// // textBox2//           textBox2 = new TextBox{Location = new Point(137, 12),Name = "textBox2",Size = new Size(100, 23),TabIndex = 1};// // label1//          label1 = new Label{AutoSize = true,Location = new Point(116, 18),Name = "label1",Size = new Size(17, 17),TabIndex = 2,Text = "+"};// // label2//          label2 = new Label{AutoSize = true,Location = new Point(12, 82),Name = "label2",Size = new Size(68, 17),TabIndex = 3,Text = "计算结果:"};// // textBox3//          textBox3 = new TextBox{Location = new Point(137, 76),Name = "textBox3",Size = new Size(100, 23),TabIndex = 4};// // comboBox1//           comboBox1 = new ComboBox{FormattingEnabled = true,Location = new Point(12, 47),Name = "comboBox1",Size = new Size(100, 25),TabIndex = 5,};comboBox1.Items.AddRange(["保留1位小数","保留2位小数","保留3位小数","保留4位小数"]);// // button1// button1 = new Button{Location = new Point(162, 44),Name = "button1",Size = new Size(75, 23),TabIndex = 6,Text = "计算",UseVisualStyleBackColor = true};button1.Click += Button1_Click;// // Form1// AutoScaleDimensions = new SizeF(7F, 17F);AutoScaleMode = AutoScaleMode.Font;ClientSize = new Size(250, 107);Controls.Add(button1);Controls.Add(comboBox1);Controls.Add(textBox3);Controls.Add(label2);Controls.Add(label1);Controls.Add(textBox2);Controls.Add(textBox1);Name = "Form1";Text = "四舍五入";   }private void Button1_Click(object? sender, EventArgs e){if(textBox1!.Text !=""&& textBox1!.Text != ""){if(comboBox1!.SelectedIndex != -1){if (double.TryParse(textBox1!.Text, out double temp1) &&double.TryParse(textBox2!.Text, out double temp2)){textBox3!.Text = //得到四舍五入后的值Math.Round(temp1 + temp2, comboBox1!.SelectedIndex + 1).ToString();}else{MessageBox.Show("输入数值不正确!", "提示!");}}elseMessageBox.Show("请选择正确的小数点后位数", "提示!");}elseMessageBox.Show("重新输入正确的数字!", "提示!");}}
}

2.生成

 

这篇关于C#用Math.Round和double.TryParse方法实现四舍五入的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/611010

相关文章

SQL中如何添加数据(常见方法及示例)

《SQL中如何添加数据(常见方法及示例)》SQL全称为StructuredQueryLanguage,是一种用于管理关系数据库的标准编程语言,下面给大家介绍SQL中如何添加数据,感兴趣的朋友一起看看吧... 目录在mysql中,有多种方法可以添加数据。以下是一些常见的方法及其示例。1. 使用INSERT I

Qt使用QSqlDatabase连接MySQL实现增删改查功能

《Qt使用QSqlDatabase连接MySQL实现增删改查功能》这篇文章主要为大家详细介绍了Qt如何使用QSqlDatabase连接MySQL实现增删改查功能,文中的示例代码讲解详细,感兴趣的小伙伴... 目录一、创建数据表二、连接mysql数据库三、封装成一个完整的轻量级 ORM 风格类3.1 表结构

基于Python实现一个图片拆分工具

《基于Python实现一个图片拆分工具》这篇文章主要为大家详细介绍了如何基于Python实现一个图片拆分工具,可以根据需要的行数和列数进行拆分,感兴趣的小伙伴可以跟随小编一起学习一下... 简单介绍先自己选择输入的图片,默认是输出到项目文件夹中,可以自己选择其他的文件夹,选择需要拆分的行数和列数,可以通过

Python中反转字符串的常见方法小结

《Python中反转字符串的常见方法小结》在Python中,字符串对象没有内置的反转方法,然而,在实际开发中,我们经常会遇到需要反转字符串的场景,比如处理回文字符串、文本加密等,因此,掌握如何在Pyt... 目录python中反转字符串的方法技术背景实现步骤1. 使用切片2. 使用 reversed() 函

Python中将嵌套列表扁平化的多种实现方法

《Python中将嵌套列表扁平化的多种实现方法》在Python编程中,我们常常会遇到需要将嵌套列表(即列表中包含列表)转换为一个一维的扁平列表的需求,本文将给大家介绍了多种实现这一目标的方法,需要的朋... 目录python中将嵌套列表扁平化的方法技术背景实现步骤1. 使用嵌套列表推导式2. 使用itert

C#读写文本文件的多种方式详解

《C#读写文本文件的多种方式详解》这篇文章主要为大家详细介绍了C#中各种常用的文件读写方式,包括文本文件,二进制文件、CSV文件、JSON文件等,有需要的小伙伴可以参考一下... 目录一、文本文件读写1. 使用 File 类的静态方法2. 使用 StreamReader 和 StreamWriter二、二进

Python使用pip工具实现包自动更新的多种方法

《Python使用pip工具实现包自动更新的多种方法》本文深入探讨了使用Python的pip工具实现包自动更新的各种方法和技术,我们将从基础概念开始,逐步介绍手动更新方法、自动化脚本编写、结合CI/C... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

在Linux中改变echo输出颜色的实现方法

《在Linux中改变echo输出颜色的实现方法》在Linux系统的命令行环境下,为了使输出信息更加清晰、突出,便于用户快速识别和区分不同类型的信息,常常需要改变echo命令的输出颜色,所以本文给大家介... 目python录在linux中改变echo输出颜色的方法技术背景实现步骤使用ANSI转义码使用tpu

Conda与Python venv虚拟环境的区别与使用方法详解

《Conda与Pythonvenv虚拟环境的区别与使用方法详解》随着Python社区的成长,虚拟环境的概念和技术也在不断发展,:本文主要介绍Conda与Pythonvenv虚拟环境的区别与使用... 目录前言一、Conda 与 python venv 的核心区别1. Conda 的特点2. Python v

Spring Boot中WebSocket常用使用方法详解

《SpringBoot中WebSocket常用使用方法详解》本文从WebSocket的基础概念出发,详细介绍了SpringBoot集成WebSocket的步骤,并重点讲解了常用的使用方法,包括简单消... 目录一、WebSocket基础概念1.1 什么是WebSocket1.2 WebSocket与HTTP