C# 中的 Infinity 和 NaN

news2024/11/17 4:33:51

C# 语言中,对于 int,long 和 decimal 类型的数,任何数除以 0 所得的结果是无穷大,不在 int,long 和 decimal 类型的范围之内,所以计算 6/0 之类的表达式会出错。

        但是,double 和 float 类型实际上有一个可以表示无穷大的特殊值:5.0/0.0 = Infinity(无穷大),这个规则唯一的例外是 0.0/0.0 = NaN (Not a Number)。

  1. using System;  

  2. using System.Collections.Generic;  

  3. using System.Linq;  

  4. using System.Text;  

  5.   

  6. namespace Infinity_NaN  

  7. {  

  8.     class Program  

  9.     {  

  10.         static void Main(string[] args)  

  11.         {  

  12.             Console.WriteLine("5 / 2 = {0}", 5 / 2);            // 2  

  13.             Console.WriteLine("5.0 / 2.0 = {0}", 5.0 / 2.0);    // 2.5  

  14.             Console.WriteLine("5.0 / 2 = {0}", 5.0 / 2);        // 2.5  

  15.             Console.WriteLine("5 / 2.0 = {0}", 5 / 2.0);        // 2.5  

  16.             Console.WriteLine("5.0 / 0.0 = {0}", 5.0 / 0.0);    // Infinity  

  17.             Console.WriteLine("5.0 / 0 = {0}", 5.0 / 0);      // Infinity  

  18.             Console.WriteLine("0.0 / 0.0 = {0}", 0.0 / 0.0);    // NaN  

  19.             Console.WriteLine("5 / 0.0 = {0}", 5 / 0.0);        // Infinity  

  20.             Console.WriteLine("0.0 / 0 = {0}", 0.0 / 0);        // NaN  

  21.   

  22.             //Console.WriteLine("5 / 0 = {0}", 5 / 0); // Err: Division by constant zero  

  23.             //Console.WriteLine("0 / 0 = {0}", 0 / 0); // Err: Division by constant zero  

  24.               

  25.             // Infinity + 10 = Infinity  

  26.             // Infinity * 0 = 0  

  27.             // NaN + 10 = NaN  

  28.             // NaN * 0 = NaN  

  29.         }  

  30.     }  

  31. }  

运行后结果如下图所示:

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java入门笔记补充

Java基础笔记补充数据类型数据类型整形拓展浮点型拓展字符型拓展类型转换变量变量作用域局部变量实例变量静态变量变量的命名规范数组三种初始化静态初始化动态初始化数组的默认初始化Arrays类内存分析栈 stack:堆 heap:方法区(也是堆):封装继…

卷积神经网络 图像处理,卷积神经网络图片处理

1、在做图像处理时,如何提高识别算法的设计与效果的精度? 得到更多的数据 这无疑是最简单的解决办法,深度学习模型的强大程度取决于你带来的数据。增加验证准确性的最简单方法之一是添加更多数据。如果您没有很多训练实例,这将特…

AllegroBGA如何自动fanout操作指导

AllegroBGA如何自动fanout操作指导 当我们需要给BGA做fanout的时候,逐个pin去fanout是件比较麻烦的事情,下面介绍Allegro中如何自动fanout,以下图BGA为例 具体操作如下 选择Route-Create Fanout 选择Via类型,比如Via10 Via Direction BGA Quadrant Style Pin-via Space…

数字化母婴店,母婴智慧会员管理小程序

会员店想必很多小伙伴都接触过或有所耳闻,会员店的本质是通过好产品、好服务及好内容营造出完整且完美的用户消费体验,虽然纯会员店并不多,但如今越来越多的各行业商家意识到每个流量用户都很重要,需要维护好每个用户,…

18.Django大型项目之用户中心页面

1. 用户中心的搭建 1.1 基础搭建 这里,主要就是基础的页面渲染,使用的也是继承主模板,对其进行修改的方式。就直接看代码吧 1.2 上下文的应用 什么是上下文? 对于上下文,可以理解成一个公用的函数或者类 我们这里使…

Qt使用MSVC2015找不到编译器的解决办法

Qt使用MSVC2015找不到编译器的解决办法 1、问题描述 安装qt前,已安装vscode,构建套件MSVC2015 32/64bit出现红色感叹号,并报错构建套件中未设置编译器 2、解决办法 step1:通过windows SDK工具安装调试器。 工具下载地址:https:/…

244. 谜一样的牛——二分+树状数组

有 n 头奶牛,已知它们的身高为 1∼n 且各不相同,但不知道每头奶牛的具体身高。 现在这 n 头奶牛站成一列,已知第 i 头牛前面有 Ai 头牛比它低,求每头奶牛的身高。 输入格式 第 1 行:输入整数 n。 第 2…n 行&#x…

Linux——组管理和权限管理

Linux组 基本介绍 在Linux中的每个用户必须属于一个组,不能独立于组外,在Linux中每个文件有所有者,所在组,其他组的概念。 所有者 一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。 查…

构造序列(模拟构造)

请你构造一个 01 序列,序列需要满足以下所有要求: 恰好包含 n 个 0 和 m 个 1。不存在两个或两个以上的 0 连续相邻。不存在三个或三个以上的 1 连续相邻。 输入格式 共一行,包含两个整数 n,m。 输出格式 输出共一行,如果存在…

【js记录】递归进行深拷贝时对于Object遍历方法的思考【深浅拷贝+object县官属性介绍+类型判断方法+for...in+for...of】

一、 前言:本文使用的 类型判断方法介绍 通过手写instaceof更好理解其作用及使用 1、 typeof 判断一个实例属于哪种类型 2、 instance 判断一个实例是否属于某种类型let person function(){ } let no new person(); no instanceof person; // true3、 原型…

IT分销商未来在哪里?南京创瑞丰向复合型产品方案商转型

在一个充满不确定性的市场中,思变求新是企业的唯一出路。 诚如IT分销领域,云计算、大数据、人工智能等技术的兴起,加速企业数字化转型的同时,亦对于传统IT分销市场的未来产生了深远影响。过去“搬箱子”、打价格战的方式方法正在…

Python中文件操作(读、写、关闭)

目录 一.什么是文件 二.python文件操作 1.open()打开函数 注意 mode常用的三种基础访问模式 2.读操作相关方法 read()方法: readlines()方法: readline()方法 for…

Linux性能学习(1.1):CPU_CPU缓存

文章目录1 简介2 工作机制3 Cache Line参考资料: 1. https://www.makeuseof.com/tag/what-is-cpu-cache/ 2. https://zhuanlan.zhihu.com/p/80672073 3.CPU Cache 机制以及 Cache miss 4.性能优化方法和技巧 在日常的嵌入式开发中,查看一些SOC的datashe…

想学习编程,该怎么开始,需要多长时间?

想学习编程,该怎么开始,需要多长时间? 其实学编程也没有啥特别的方法,和我们没基础学驾照差不多。 考A照、B照还是C照,我们先得拎清,它们的用途存在一定差异 。一样的,学编程是学C,Java、Pyth…

命令行在服务器的Oracle新建、修改用户并授权

1.前提解说 由于我是使用docker拉取的Oracle,这里截图的Oracle用户是原本安装好的Oracle用户。 2.步骤 1.Linux服务器切换到Oracle su oracle 2. 进入SQL sqlplus / as sysdba 3.新建用户(一定要加“;”) create user 用户名 identified by 密码; 若是修…

Tableau可视化设计案例-02Tableau数据处理、折线图

文章目录Tableau可视化设计案例02Tableau数据处理、折线图1.数据前处理2.绘制折线图2.1 创建电影数据变化折线图2.2创建电影票房变化折线图2.3 20215年的电影数量与票房比较分析Tableau可视化设计案例 本文是Tableau的案例,为B站视频的笔记,B站视频 参考…

Java集合/泛型面试题

✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏:Java面试题…

作为文科生,如何才能学好一门编程语言?

学习新知识的过程总是痛苦和逆人性的,古往今来皆是如此,否则也不会有十年寒窗苦读一说。 相信此刻看这篇文章的你,经历的寒窗绝对不止十年。 从小学开始算起到大学毕业,绝大多数人起码经历了16年(跳级的神童与学霸除…

5G无线技术基础自学系列 | 单站点验证测试

素材来源:《5G无线网络规划与优化》 一边学习一边整理内容,并与大家分享,侵权即删,谢谢支持! 附上汇总贴:5G无线技术基础自学系列 | 汇总_COCOgsta的博客-CSDN博客 单站点验证工作是通过测试来进行功能性…

二级MS Office真题第8套完整解析

全国计算机等级考试二级新增预测第一套 一、文字处理 公司将于今年举办“创新产品展示说明会”,市场部助理小王需要将会议邀请函制作完 成,并寄送给相关的客户。现在,请你按照如下需求,在Word.docx文档中完成制作工作:…