测绘程序设计|C#运算符与Math类|注意事项

embedded/2024/11/14 14:53:10/

由于微信公众号改变了推送规则,为了每次新的推送可以在第一时间出现在您的订阅列表中,记得将本公众号设为星标或置顶喔~


  简单介绍了C#运算符与Math类,强调了易错点~

🌿前言

  运算符+Math类,便可以完成绝大部分的数学运算。本文简单列出了常用的运算符,介绍了如何进入Math类源代码查看函数文档,最后着重强调了一些易错点。

🍀运算符

  C#中有很多很多的运算符,但是常用的并不多。

C#运算符

C#常用的运算符

  其中,有一些对于小白参赛选手比较陌生,如:%是取余运算,Matlab编程语言中却是注释符号;++、–是变量的自加和自减;i += 3等价于i = i + 3;与(and且)运算符&&、或(or或)运算符||。具体可以参考小结部分微软官方帮助文档~

🌸Math类

  C#中内置的Math类,可以实现一些高级的数学计算,比如Pow(幂运算)、向上向下取整、正反三角函数、对数…具体可以Ctrl+鼠标左键Math关键字进入定义查看。这也告诉读者,可以通过类似的方法进入其他的库查看文档源码。

使用快捷键Ctrl+鼠标左键可以进入Math库函数

Math类

🛴常用写法

double mathPI = Math.PI;//数学上的PI
double mathPI_2 = Math.Pow(mathPI, 2);//PI的方
//求一个数的平方的两种方法
double mathPI_sq1 = Math.Sqrt(mathPI);
double mathPI_sq2 = Math.Pow(mathPI, 0.5);
//三角函数
double sinPI = Math.Sin(mathPI);
double atan1_1 = Math.Atan(1);//反正切
double atan1_2 = Math.Atan2(1, 1);//反正切
double atan1_3 = Math.Atan2(-1, -1);//反正切
//其他
//Math.Floor、Math.Ceiling

🍟使用Math库如何免去Math.前缀

  只需要添加using命令,即可实现使用Math不加Math.前缀。

添加using语句

🍗易错点

  1. 注意运算符的优先级
      在使用运算符时,需要考虑到运算符的优先级(类似先加减后乘除这种),但笔者通常并不记忆太多,不确定的地方多一些括号即可。

  2. i++与++i

i++

++i

  1. int与int运算

  这个之前说C#基本数据类型时也特别强调过,int与int的运算结果仍为整数,例如5/2=2,故需要避免出现int与int运算的情况。

  1. a<x<b

  在C#中,这种两端条件的语法,需要用&&与运算符连接,写成-1 < i && i < 0这种形式。否则计算机会先运算1 < i得到一个0或1值,再将得到的值与0比较大小,最后可能得到一个错误值。

  1. 角度的单位

  在Math的三角函数中,所有的计算都是使用的弧度为单位。这个需要特别注意!

  1. Atan与Atan2

  Atan与Atan2都可以用来计算反正切,其中Atan返回值在 -π/2 到 π/2之间,Atan2返回值在 -π 到 π 之间。具体可以查阅微软官方文档。

🌹结语

  1. 本章节并未介绍很高级的知识点,只是强调一些使用易错点,愿读者编程时能够避开雷区~

  2. 运算符不仅仅有优先级,还有结合性,还有一些位运算符等等读者可以自行多加了解,微软运算符文档:https://learn.microsoft.com/zh-cn/dotnet/csharp/language-reference/operators/

  3. 平时训练时也可以参考微软Math类文档:https://learn.microsoft.com/zh-cn/dotnet/api/system.math?view=net-8.0

  4. 笔者为测绘遥感方向的学习者,愿意结交志同道合的伙伴,欢迎关注公众号与笔者一起交流学习~


  • 路虽远,行则将至;事虽难,做则必成。希望认真学习的你能够有所收获~

  • 本公众号的原创成果,在未经允许的情况下,请勿用于任何商业用途!

  • 如果本文有幸可以帮到您,欢迎您的点赞👍、收藏⭐与关注❤;您的点赞👍、收藏⭐与关注❤是我创作的最大动力~



http://www.ppmy.cn/embedded/137276.html

相关文章

九、HttpMessageConverter

文章目录 1. RequestBody2. RequestEntity3. ResponseBody4. SpringMVC处理json5. SpringMVC处理ajax6. RestController注解7. ResponseEntity 1. RequestBody 2. RequestEntity 3. ResponseBody 4. SpringMVC处理json 5. SpringMVC处理ajax 6. RestController注解 7. Response…

WebRTC视频 01 - 视频采集整体架构

一、前言&#xff1a; 我们从1对1通信说起&#xff0c;假如有一天&#xff0c;你和你情敌使用X信进行1v1通信&#xff0c;想象一下画面是不是一个大画面中有一个小画面&#xff1f;这在布局中就叫做PIP&#xff08;picture in picture&#xff09;&#xff1b;这个随手一点&am…

优化Mac的鼠标使用体验超简单方法

Mac在连接蓝牙鼠标后&#xff0c;鼠标滚轮方向与触控板方向相反&#xff0c;如果打开系统偏好设置中的方向反转的话&#xff0c;触控板的方向也会反转&#xff0c;无法鼠标与触控板配合使用 如何解决这个问题&#xff0c;iScroll替你解决这个烦恼&#xff0c;让Mac的触控板与鼠…

Tomcat与Nginx之全面比较

概况 Apache Tomcat Apache Tomcat&#xff0c;通常简称为Tomcat&#xff0c;是一个开源的Web应用服务器&#xff0c;它主要用于运行Java Web应用程序。Tomcat实现了Java Servlet和JavaServer Pages&#xff08;JSP&#xff09;技术&#xff0c;这些是Java EE规范的一部分。To…

Py2Neo 库将 Json 文件导入 Neo4J

在Python中&#xff0c;利用Py2Neo库可以将JSON数据导入Neo4j图数据库&#xff0c;从而构建知识图谱。Py2Neo是一个Python库&#xff0c;用于与Neo4j图数据库交互。以下是如何使用Py2Neo从JSON文件导入数据的详细步骤&#xff1a; 1. 安装所需库 确保已经安装py2neo库。如果没…

【IEEE/EI会议/南邮主办】第六届机器人、智能控制与人工智能国际学术会议(RICAI 2024)

会议通知 尊敬的学者&#xff1a; 第六届机器人、智能控制与人工智能国际学术会议&#xff08;RICAI 2024&#xff09;将于2024年12月6-8日在中国南京召开。大会围绕机器人、智能控制与人工智能领域最新的研究热点、核心技术与发展态势&#xff0c;以及行业热点进行探讨&…

package.json中“type“: “module“是什么含义,es6和commonjs的区别以及require和import使用场景

"type": "module" 是 Node.js 中 package.json 文件的一个字段&#xff0c;用于指示该项目的模块系统类型。它决定了项目中的 .js 文件应被视为 ECMAScript 模块 (ESM) 还是 CommonJS 模块 (CJS)。 含义和作用&#xff1a; "type": "modu…

科技革命前沿:救援机器人!

救援机器人主要制作材料 传统刚性材料&#xff1a;传统救援机器人多采用金属等刚性材料制作&#xff0c;以确保其结构强度和稳定性。这些材料在承受较大负载和复杂环境时表现出色&#xff0c;但可能缺乏一定的灵活性。 软体材料&#xff1a;近年来&#xff0c;软体机器人技术…