1-在C#中的数字 int double

在之前本着能懒就懒的原则,所以导致一些本来该总结的也不总结,该记录的也不记录的知识点总是很快忘记的一干二净。

今天,决定了开始记录,我也不敢说可以坚持多久,频率嘛,肯定不是每天都记录(还是懒),但是目前想来一周2-3次发博客记录学习吧。

如果有看到我偷懒的,可以在消息里打醒我(希望你们不会记得)这里的内容我大概也不会在写第二遍了。

追溯原因是今天看了某个大佬或者小佬的分享后决定再次回归从C#的基础中在跑一遍,(应该很快了)然后从中继续受益,不多说了。

进入正题


今天去Microsoft里面下载了C#的文档

然后从最基础的看起,发现了即使是最基础的也能让我有所收获。记录一下,虽然可能多年后在看是个笑话,但这也算今天的一个目标和成就把。

C# 整数类型不同于数学上的整数的另一点是, int 类型有最小限值和最大限值。 将此代码添加到 Main 方法,
看看这些限制的运行机制
1 int max = int.MaxValue; 
2 int min = int.MinValue; 
3 Console.WriteLine($"The range of integers is {min} to {max}");

之前虽然也知道int.MaxValue; 但是这么久不用会忘,就这一点也够我写进来了

敲黑板,不看答案有谁知道int的最大值是几位数吗?(我也不知道)

2147483647
-2147483648

好了,问题来了,是不是觉得特别无聊,看这个干什么。那么问一个问题,如果 max + 1 或者 min -1 会怎么样呢?

这样估计能打出来的就没几个人了把。

报错,抛异常?越界,参数错误,编译错误。。。。。。

在不看答案之前其实我也不知道

答案是

-2147483648
2147483647

竟然是正负数反转,好吧。之前从来没注意过,之前总以为不是随便用,一般也不会出问题,但是现在终于明白为什么要注意区分了,因为这个代价有点大。

官方文档给出的说明是

---

可以看到,答案非常接近最小(负)整数。 与 min + 2 相同。 加法运算会让整数溢出 允许的值。 答案是一个非常
大的负数,因为溢出从最大整数值覆盖回最小整数值。

---

收获了又

其他就不多赘述了,

同理,我马上想到并且去试了试 double和decimal,果然,他们也有MaxValue和MinValue

 图中,前两个是int的最大最小值----中间俩是double,后面的是decimal的

我们都知道decimal的精度比double大,那么在正常使用中为什么不都用decimal而还用double呢?、

如果你够细心可能就发现了,在上图中,中间double的那两项的范围比decimal大,但是decimal的精度要高于double。在官方文档中是这么说的

好了,到点了,不要问我到什么点儿了。今儿总结了一堆了,温故知新,后面继续。


原文地址:https://www.cnblogs.com/SevenWang/p/13746208.html