014集——浮点数值类型——C#学习笔记

浮点类型的特征
C# 支持以下预定义浮点类型:



double a = 12.3;
System.Double b = 12.3;
每个浮点类型的默认值都为零,0。 每个浮点类型都有 MinValue 和 MaxValue 常量,提供该类型的最小值和最大有限值。 float and double 类型还提供可表示非数字和无穷大值的常量。 例如,double 类型提供以下常量:Double.NaN、Double.NegativeInfinity 和 Double.PositiveInfinity。

当所需的精度由小数点右侧的位数决定时,decimal 类型是合适的。 此类数字通常用于财务应用程序、货币金额(例如 $1.00)、利率(例如 2.625%)等。 精确到只有一个小数的偶数用 decimal 类型处理会更准确:例如,0.1 可以由 decimal 实例精确表示,而没有精确表示 0.1 的 double 或 float 实例。 由于数值类型存在这种差异,因此当你对十进制数据使用 double 或 float 时,算术计算可能会出现意外的舍入错误。 当优化性能比确保准确度更重要时,可以使用 double 代替 decimal。 然而,除了大多数计算密集型应用程序之外,所有应用程序都不会注意到性能上的任何差异。 避免使用 decimal 的另一个可能原因是为了最大限度地降低存储需求。

可在表达式中将整型类型与 float 和 double 类型混合使用功能。 在这种情况下,整型类型隐式转换为其中一种浮点类型,且必要时,float 类型隐式转换为 double。 此表达式的计算方式如下:

如果表达式中有 double 类型,则表达式在关系比较和相等比较中求值得到 double 或 bool。
如果表达式中没有 double 类型,则表达式在关系比较和相等比较中求值得到 float 或 bool。
你还可在表达式中混合使用整型类型和 decimal 类型。 在这种情况下,整型类型隐式转换为 decimal 类型,并且表达式在关系比较和相等比较中求值得到 decimal 或 bool。

不能在表达式中将 decimal 类型与 float 和 double 类型混合使用。 在这种情况下,如果你想要执行算术运算、比较运算或相等运算,则必须将操作数显式转换为 decimal 或反向转换,如下例所示:

double a = 1.0;
decimal b = 2.1m;
Console.WriteLine(a + (double)b);
Console.WriteLine((decimal)a + b);

double d = 3D;
d = 4d;
d = 3.934_001;

float f = 3_000.5F;
f = 5.4f;

decimal myMoney = 3_000.5m;
myMoney = 400.75M;

示例代码如下:

using System;
using System.Globalization;namespace StringApplication
{class zz银行{protected decimal MyFortune = 0m;public zz银行(){/*m 后缀用于表示一个数值字面量是 decimal 类型的。decimal 类型用于需要高精度的财务和货币计算。* 它提供了比 float 和 double 类型更高的精度和更小的范围,非常适合处理金融数据。当你看到 0m 时,这意味着数字 0 被明确指定为 decimal 类型,而不是默认的 int、float 或 double 类型。这样做的好处是,你的代码意图更加清晰,同时也避免了在将整数或浮点数赋值给 decimal 变量时可能发生的隐式类型转换。*/MyFortune = 0m;}public void AddPenny(decimal i){MyFortune += i ;}//扩展或修改继承的方法、属性、索引器或事件的抽象或虚拟实现需要 override 修饰符。public override string ToString(){/*ToString 方法用于将数值、日期、时间等对象转换为它们的字符串表示形式。* 对于数值类型(如 decimal),ToString 方法可以接受一个格式字符串作为参数,以指定输出字符串的格式。*/var usFormat = new CultureInfo("en-US");//return " zz银行的余额为:" + MyFortune.ToString("C") ;¥人民币单位return " zz银行的余额为:" + MyFortune.ToString("C", usFormat); //$美元单位//return " zz银行的余额为:" + MyFortune.ToString("F5", usFormat); //$美元单位,保留5为小数,即F5/*关于 "C" 格式说明符:使用当前区域性的货币符号(如美元符号$、欧元符号€等)。根据需要添加千位分隔符。根据当前区域性的设置来格式化小数点后的数字(通常是两位,但这也取决于区域性的具体设置)。因此,如果 MyFortune 的值是 123.45m,并且当前线程的区域性设置为美国英语(en-US),那么 MyFortune.ToString("C") 将返回类似 "$123.45" 的字符串。如果当前线程的区域性设置为其他货币体系,返回的字符串将相应地反映该货币体系的格式。*/}public static void Main(){zz银行 bank = new zz银行();bank.AddPenny(2.666666m);Console.WriteLine(bank);Console.ReadLine();}}
}

 

在C#中,public override string ToString() 这句代码定义了一个方法(Method),这个方法重写了(Overrides)从基类继承而来的 ToString 方法。这里有几个关键点需要理解:

public:这是一个访问修饰符,表示这个方法是公开的,意味着它可以被任何其他类访问。
override:这个关键字用于指示该方法重写了基类中的虚方法(virtual method)或抽象方法(abstract method)。如果没有 override 关键字,并且基类中没有相应的虚方法或抽象方法,那么尝试定义这样一个方法将会导致编译错误。
string:这是方法的返回类型,表示该方法执行后将返回一个字符串(String)类型的值。
ToString:这是方法的名称。ToString 方法在.NET中是一个非常特殊的方法,因为几乎所有.NET对象都继承自 System.Object 类,而 System.Object 类中定义了一个 virtual 的 ToString 方法。这意味着,除非在派生类中重写 ToString 方法,否则调用任何对象的 ToString 方法时,都会返回该对象的类名加上其哈希码的字符串表示(这通常不是很有用)。
方法体(在您的例子中未给出):这是方法内部执行的代码,定义了当调用该方法时应该执行什么操作。对于 ToString 方法来说,通常的做法是返回一个能够描述对象状态的字符串。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开放大世界的 GpuTerrain + RVT

Unity 原生有一个 Tarrain(地形)系统,但可惜并不能直接用于开放世界,当然是因为其效率问题。现在开放世界主流是使用 GpuTerrain RVT ,也是一个成熟技术了。在项目中实现这个技术的是公司的 TA(我只做了接…

学习计算机网络(三)——IP地址

一、IP协议(IPV4、IPV6) 表示形式(两种): 点分十进制、二进制 地址被点分为4个部分,每个部分8位,总共32位。 A、B、C类地址都是单播地址(一对一通信),D类…

kubernetes k8s Daemonset 控制器 原理 讲解 配置

目录 1 DaemonSet控制器:概念、原理解读 1.1 DaemonSet概述 1.2 DaemonSet工作原理:如何管理Pod? 1.3 Daemonset典型的应用场景 1.4 DaemonSet 与 Deployment 的区别Deployment 部署的副本 Pod 会分布在各个 Node 上,每个…

Python轻量级 NoSQL 数据库之tinydb使用详解

概要 在现代应用开发中,使用数据库来存储和管理数据是非常常见的需求。对于简单的数据存储需求,关系型数据库可能显得过于复杂。TinyDB 是一个纯 Python 实现的轻量级 NoSQL 数据库,专为嵌入式场景设计,适用于小型项目、原型开发和教学等场景。本文将详细介绍 TinyDB 库,…

宠物行为:健康信号的早期预警

宠物,作为我们家庭中不可或缺的一部分,它们的健康同样需要我们细心呵护。宠物的行为变化,往往预示着健康问题的出现。而智能科技的融入,让这一过程变得更加科学和精准。 智能听诊器:宠物健康的守护者 智能听诊器&…

ISO 13485认证:医疗器械行业的质量护航者

在医疗器械行业,产品质量关乎生命。为确保每一件医疗器械的安全与可靠,ISO 13485认证作为全球公认的质量管理体系标准,正为无数企业提供强大的质量保障。对于企业来说,获得这一认证不仅是质量管理的提升,更是开拓全球市…

时间序列分析详解

时间序列分析详解 时间序列是按时间顺序排列的、随时间变化且相互关联的数据序列。 分析时间序 列的方法构成数据分析的一个重要领域,即时间序列分析。 时间序列根据所研究的依据不同,可有不同的分类。 按所研究的对象的多少分,有一元时间序…

Spring Cloud Alibaba微服务组件学习笔记

文章目录 一、版本说明版本关系项目创建 二、Nacos注册中心什么是NacosNacos注册中心核心功能Nacos Server部署(windows版本)Nacos Client服务Nacos Server配置项详解:Nacos集群搭建: 三、Ribbon负载均衡主流的负载方案&#xff1…

Spark MLlib 特征工程(上)

文章目录 Spark MLlib 特征工程(上)特征工程预处理 Encoding:StringIndexer特征构建:VectorAssembler特征选择:ChiSqSelector归一化:MinMaxScaler模型训练总结Spark MLlib 特征工程(上) 前面我们一起构建了一个简单的线性回归模型,来预测美国爱荷华州的房价。从模型效果来…

【C++语言】list的构造函数与迭代器

1. list的介绍及使用 1.1 list的介绍 list的文档介绍 1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。 2. list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点…

C语言实现多种快速排序

目录 1.概念 2.快速排序hoare版本 2.1基本思想 2.2解释相遇处的值为何一定小于key 2.3hoare版本快速排序的实现 3.快速排序挖坑法 3.1基本思想 3.2挖坑法快速排序的实现 4. 快速排序前后指针版本 4.1基本思想 4.2快速排序前后指针版本实现 5.快速排序非递归版本 …

苹果笔记本电脑可以玩steam游戏吗 MacBook支持玩steam游戏吗 在Steam上玩黑神话悟空3A大作 苹果Mac怎么下载steam

游戏是生活的润滑剂,越来越多的用户开始关注Mac平台上可玩的游戏。幸运的是,Steam作为最大的数字发行平台之一,提供了大量适用于Mac操作系统的游戏。无论你是喜欢策略、冒险还是射击类游戏,都能在Steam上找到适合自己Mac设备玩耍的…

从0开始搭建vue + flask 旅游景点数据分析系统(九):旅游景点管理之增删改查

这一期来做旅游景点数据的增删改查 先看下我们做好的效果是这样的: ## 1 后台接口 这里的接口已经考虑到了分页的情况,因为前端的表格是带有分页的,接受的前端传过来的get参数为 title 、page、 limit ,titie是查询的关键词&…

Matlab绘制像素风字母颜色及透明度随机变化动画

本文是使用 Matlab 绘制像素风字母颜色及透明度随机变化动画的教程 实现效果 实现代码 如果需要更改为其他字母组合,在下面代码的基础上简单修改就可以使用。 步骤:(1) 定义字母形状;(2) 给出字母组合顺序;(3) 重新运行程序&#…

iPhone 16 机模视频曝光,五种颜色各有千秋

科技博主的最新视频分享了苹果 iPhone 16 标准版的机模上手体验。 视频中展示了五种颜色的 iPhone 16:深邃的蓝色、柔和的粉色、纯净的白色、经典的黑色和生机勃勃的绿色。 与 iPhone 15 相比,iPhone 16 弃用了黄色,新增了白色,…

地质灾害评估和治理工程勘查设计资质乙级资质办理标准

地质灾害评估和治理工程勘查设计资质乙级资质的办理标准主要包括单位条件、专业技术人员条件、仪器设备要求以及申请材料等方面。以下是详细的办理标准: 一、单位条件 **1、法人资格:**申请单位应具有企业法人或者事业单位法人资格。 **2、管理体系&a…

奥运内容碎片化传播下,品牌营销开始要讲究“性价比”

8月12日凌晨,随着孙颖莎和其他代表各洲的运动员们一起熄灭了圣火,巴黎奥运会终于落下帷幕。 本届奥运会上,中国体育代表团表现出色,共获得40枚金牌,金牌总数位居全球榜首,创下了中国在境外奥运会上的最佳成…

人工智能领域颠覆性技术创新,数字人泛化AI时代来临

是先有鸡还是先有蛋,这个问题人类还没有搞清楚,这次又有一个新的问题产生了,是算法进化了AI,还是AI进化了算法。我们知道直播平台都是利用算法对数字人直播进行斟别,但这一次被数字人泛化技术颠覆了,AI回复…

报错解决——苹果电脑mac装windows10,总是提示“启动转换”安装失败:拷贝Windows安装文件时出错

报错原因: 所安装的镜像文件大于4GB。 解决办法一: 使用小于4GB的镜像文件。 参考文章: 安装小于4GB的windows系统镜像 小于4GB的windows10镜像下载: 系统库官网 解决办法二: 参考文章: Mac air装…

VS实用调试技巧(程序员的必备技能)

调试的重要性 在我们写代码的时候,如果程序出现了bug,那么下一步就是找到bug并修复bug!而这个找问题的过程就被称为调试(英文叫debug,消灭bug的意思)。 调试能观察到程序内部执行的细节,可以增加程序员对…