Math:处理数学计算的工具

2023-12-14 00:48

本文主要是介绍Math:处理数学计算的工具,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在软件开发过程中,我们有时候需要进行些数学计算,除了简单的四则运算外,我们也许会涉及到三角函数、对数等数学应用。.Net提供了System.Math类辅助我们完成工作。

以下代码演示了Math的基本能力:

System.Console.WriteLine(System.Math.Abs(-12.01));//绝对值

System.Console.WriteLine(System.Math.PI);//圆周率

System.Console.WriteLine(System.Math.Max(12,14));//最大值

System.Console.WriteLine(System.Math.Min(12,14));//最小值

以下代码描述了Math对数据进行求接近值的不同方式:

System.Console.WriteLine(System.Math.Ceiling(12.34));//最高整数

System.Console.WriteLine(System.Math.Floor(12.34));//最低整数

System.Console.WriteLine(System.Math.Truncate(12.34));//取整

Math提供了对三角函数的处理能力:

System.Console.WriteLine(System.Math.Acos(0.45));//余弦值

System.Console.WriteLine(System.Math.Asin(0.45));//正弦值

System.Console.WriteLine(System.Math.Atan(0.45));//正切值

System.Console.WriteLine(System.Math.Sin(90));//正弦值

System.Console.WriteLine(System.Math.Sinh(90));//双曲正弦值

System.Console.WriteLine(System.Math.Tan(90));//正切值

System.Console.WriteLine(System.Math.Tanh(90));//双曲正切值

Math提供对应对数、幂等计算的方式:

System.Console.WriteLine(System.Math.Log(3, 10));//对数

System.Console.WriteLine(System.Math.Log10(3));//以 10 为底的对

System.Console.WriteLine(System.Math.Pow(2, 10));//次幂

System.Console.WriteLine(System.Math.Sqrt(9));//平方根

以下代码向我们演示了如何计算五角星每个点的位置:

int r = 50;

System.Drawing.Point[] apt = new System.Drawing.Point[5];

for (int i = 0; i < apt.Length; i++)

{

apt[i] = new System.Drawing.Point(

(int)(20 + r / 2 + Math.Sin(Math.PI * 54.0 / 180) * r *

Math.Sin(Math.PI * (i * 72.0 + 36) / 180)),

(int)(20 + r / 2 + Math.Sin(Math.PI * 54.0 / 180) * r *

Math.Cos(Math.PI * (i * 72.0 + 36) / 180)));

}

System.Drawing.Point[] aptA = new System.Drawing.Point[5];

for (int i = 0; i < aptA.Length; i++)

{

aptA[i] = new System.Drawing.Point(

(int)(20 + r / 2 + Math.Sin(Math.PI * 14.0 / 180) /

Math.Sin(Math.PI * 54.0 / 180) * r * Math.Sin(Math.PI * (i * 72.0 + 72) / 180)),

(int)(20 + r / 2 + Math.Sin(Math.PI * 14.0 / 180) /

Math.Sin(Math.PI * 54.0 / 180) * r * Math.Cos(Math.PI * (i * 72.0 + 72) / 180))

);

}

Math中最有意思的是Math.Round方法,该方法是将小数值舍入到指定精度,如果你认为这个方法是我们传统意义上的四舍五入,那你会以下代码的运行结果会非常惊讶

System.Console.WriteLine(System.Math.Round(3.25, 1));

System.Console.WriteLine(System.Math.Round(3.15, 1));

你会非常惊讶的发现运行结果并不是你所相信的3.3和3.2,而是如图3.1.16所示:

clip_image002

图3.1.16

原因是Round的默认精度控制是遵循 IEEE 标准 754 的第 4 节。这种舍入有时称为就近舍入或四舍六入五成双。它可以将因单方向持续舍入中点值而导致的舍入误差降到最低。说的通俗点就是,逢六必进位,逢五看奇偶,奇进偶不进。

如果我们希望精度的控制和我们目前的国内传统一致,请编写以下代码:

System.Console.WriteLine(System.Math.Round(3.25, 1, MidpointRounding.AwayFromZero));

System.Console.WriteLine(System.Math.Round(3.15, 1, MidpointRounding.AwayFromZero));

上述代码的结果则如图3.1.17所示:

clip_image004

图3.1.17

这篇关于Math:处理数学计算的工具的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

高效录音转文字:2024年四大工具精选!

在快节奏的工作生活中,能够快速将录音转换成文字是一项非常实用的能力。特别是在需要记录会议纪要、讲座内容或者是采访素材的时候,一款优秀的在线录音转文字工具能派上大用场。以下推荐几个好用的录音转文字工具! 365在线转文字 直达链接:https://www.pdf365.cn/ 365在线转文字是一款提供在线录音转文字服务的工具,它以其高效、便捷的特点受到用户的青睐。用户无需下载安装任何软件,只

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念

超强的截图工具:PixPin

你是否还在为寻找一款功能强大、操作简便的截图工具而烦恼?市面上那么多工具,常常让人无从选择。今天,想给大家安利一款神器——PixPin,一款真正解放双手的截图工具。 想象一下,你只需要按下快捷键就能轻松完成多种截图任务,还能快速编辑、标注甚至保存多种格式的图片。这款工具能满足这些需求吗? PixPin不仅支持全屏、窗口、区域截图等基础功能,它还可以进行延时截图,让你捕捉到每个关键画面。不仅如此

Thymeleaf:生成静态文件及异常处理java.lang.NoClassDefFoundError: ognl/PropertyAccessor

我们需要引入包: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>sp

jenkins 插件执行shell命令时,提示“Command not found”处理方法

首先提示找不到“Command not found,可能我们第一反应是查看目标机器是否已支持该命令,不过如果相信能找到这里来的朋友估计遇到的跟我一样,其实目标机器是没有问题的通过一些远程工具执行shell命令是可以执行。奇怪的就是通过jenkinsSSH插件无法执行,经一番折腾各种搜索发现是jenkins没有加载/etc/profile导致。 【解决办法】: 需要在jenkins调用shell脚

PR曲线——一个更敏感的性能评估工具

在不均衡数据集的情况下,精确率-召回率(Precision-Recall, PR)曲线是一种非常有用的工具,因为它提供了比传统的ROC曲线更准确的性能评估。以下是PR曲线在不均衡数据情况下的一些作用: 关注少数类:在不均衡数据集中,少数类的样本数量远少于多数类。PR曲线通过关注少数类(通常是正类)的性能来弥补这一点,因为它直接评估模型在识别正类方面的能力。 精确率与召回率的平衡:精确率(Pr

husky 工具配置代码检查工作流:提交代码至仓库前做代码检查

提示:这篇博客以我前两篇博客作为先修知识,请大家先去看看我前两篇博客 博客指路:前端 ESlint 代码规范及修复代码规范错误-CSDN博客前端 Vue3 项目开发—— ESLint & prettier 配置代码风格-CSDN博客 husky 工具配置代码检查工作流的作用 在工作中,我们经常需要将写好的代码提交至代码仓库 但是由于程序员疏忽而将不规范的代码提交至仓库,显然是不合理的 所

10个好用的AI写作工具【亲测免费】

1. 光速写作 传送入口:http://u3v.cn/6hXWYa AI打工神器,一键生成文章&ppt 2. 讯飞写作 传送入口:http://m6z.cn/5ODiSw 3. 讯飞绘文 传送入口:https://turbodesk.xfyun.cn/?channelid=gj3 4. AI排版助手 传送入口:http://m6z.cn/6ppnPn 5. Kim