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

相关文章

揭秘未来艺术:AI绘画工具全面介绍

📑前言 随着科技的飞速发展,人工智能(AI)已经逐渐渗透到我们生活的方方面面。在艺术创作领域,AI技术同样展现出了其独特的魅力。今天,我们就来一起探索这个神秘而引人入胜的领域,深入了解AI绘画工具的奥秘及其为艺术创作带来的革命性变革。 一、AI绘画工具的崛起 1.1 颠覆传统绘画模式 在过去,绘画是艺术家们通过手中的画笔,蘸取颜料,在画布上自由挥洒的创造性过程。然而,随着AI绘画工

墨刀原型工具-小白入门篇

墨刀原型工具-小白入门篇 简介 随着互联网的发展和用户体验的重要性越来越受到重视,原型设计逐渐成为了产品设计中的重要环节。墨刀作为一款原型设计工具,以其简洁、易用的特点,受到了很多设计师的喜爱。本文将介绍墨刀原型工具的基本使用方法,以帮助小白快速上手。 第一章:认识墨刀原型工具 1.1 什么是墨刀原型工具 墨刀是一款基于Web的原型设计工具,可以帮助设计师快速创建交互原型,并且可以与团队

一份LLM资源清单围观技术大佬的日常;手把手教你在美国搭建「百万卡」AI数据中心;为啥大模型做不好简单的数学计算? | ShowMeAI日报

👀日报&周刊合集 | 🎡ShowMeAI官网 | 🧡 点赞关注评论拜托啦! 1. 为啥大模型做不好简单的数学计算?从大模型高考数学成绩不及格说起 司南评测体系 OpenCompass 选取 7 个大模型 (6 个开源模型+ GPT-4o),组织参与了 2024 年高考「新课标I卷」的语文、数学、英语考试,然后由经验丰富的判卷老师评判得分。 结果如上图所

大学湖北中医药大学法医学试题及答案,分享几个实用搜题和学习工具 #微信#学习方法#职场发展

今天分享拥有拍照搜题、文字搜题、语音搜题、多重搜题等搜题模式,可以快速查找问题解析,加深对题目答案的理解。 1.快练题 这是一个网站 找题的网站海量题库,在线搜题,快速刷题~为您提供百万优质题库,直接搜索题库名称,支持多种刷题模式:顺序练习、语音听题、本地搜题、顺序阅读、模拟考试、组卷考试、赶快下载吧! 2.彩虹搜题 这是个老公众号了 支持手写输入,截图搜题,详细步骤,解题必备

Windows/macOS/Linux 安装 Redis 和 Redis Desktop Manager 可视化工具

本文所有安装都在macOS High Sierra 10.13.4进行,Windows安装相对容易些,Linux安装与macOS类似,文中会做区分讲解 1. Redis安装 1.下载Redis https://redis.io/download 把下载的源码更名为redis-4.0.9-source,我喜欢跟maven、Tomcat放在一起,就放到/Users/zhan/Documents

OpenCompass:大模型测评工具

大模型相关目录 大模型,包括部署微调prompt/Agent应用开发、知识库增强、数据库增强、知识图谱增强、自然语言处理、多模态等大模型应用开发内容 从0起步,扬帆起航。 大模型应用向开发路径:AI代理工作流大模型应用开发实用开源项目汇总大模型问答项目问答性能评估方法大模型数据侧总结大模型token等基本概念及参数和内存的关系大模型应用开发-华为大模型生态规划从零开始的LLaMA-Factor

百度OCR识别结构结构化处理视频

https://edu.csdn.net/course/detail/10506

简鹿文件批量重命名:一款文件批量改名高手都在用的工具

作为 IT 行业的搬砖民工,互联网的数据量爆炸性增长,文件管理成为了一项日益重要的任务。"简鹿文件批量重命名"应运而生,旨在为用户提供一个高效、灵活的解决方案,以应对繁琐的文件命名、排序、创建及属性修改等挑战。 这款软件凭借其一键式操作、强大的自定义规则导入、以及全面的批量处理能力,极大地简化了文件管理流程,尤其适合处理大量文件的个人用户及企业环境,是提高工作效率、保持文件系统整洁的得力助手

如何在Java中处理JSON数据?

如何在Java中处理JSON数据? 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将探讨在Java中如何处理JSON数据。JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,在现代应用程序中被广泛使用。Java通过多种库和API提供了处理JSON的能力,我们将深入了解其用法和最佳

AI学习指南机器学习篇-朴素贝叶斯处理连续特征和离散特征

AI学习指南机器学习篇-朴素贝叶斯处理连续特征和离散特征 在机器学习领域,朴素贝叶斯是一种常用的分类算法,它的简单性和高效性使得它在实际应用中得到了广泛的应用。然而,在使用朴素贝叶斯算法进行分类时,我们通常会面临一个重要的问题,就是如何处理连续特征和离散特征。因为朴素贝叶斯算法基于特征的条件独立性假设,所以对于不同类型的特征,我们需要采取不同的处理方式。 在本篇博客中,我们将探讨如何有效地处理