public class TestDouble{
public static void main(String [] args){
System.out.println(10.00 - 9.10);
}
}
public class Elementary{
public static void main(String[] args){
System.out.println(12345+5432l);
}
}
i = i + 1
都感到百思不得其解if (a >3) {
// do something
}
if (a < 5) {
// do something
}
但是当我们写出
if (3 < a < 5)
时,居然报错了,又百思不得其解,后来被教导了,这么写是错的,应该if
(a>3 && a<5)
。 于是我们又开始接受了,认为这么写是理所当然的,而且以后的代码都是这么写的。直到有一天,你看了
python 的入门手册,尼玛,居然逆天的出现了 ‘if 3 < a < 5:’,当时绝对又震惊了,“怎么可以这么写?”。 难道你忘了,N年前你就是这么写的,而且当时你不也认为3 < a < 5
是理所当然的吗(任何一个高中生都会同意这种写法),
为什么你现在又开始觉得3 < a < 5
是种逆天写法呢,因为你在这几年的编程生涯中,已经被动接受了太多太多的东西,而且使你根本就不曾思考过,当你被告知了,在编程中=是赋值的意思(其实他们没有告诉你,只是大部分语言这样,还有很多语言不是这样,比如pascal中:=是赋值,比如basic/VB中=即是赋值也是判断),
但是=如果不是相等的话,那肯定有表示相等的,对,就是==,或者===。不管是==还是=,「相等」到底是什么意思呢?=或者==或者===,即使以后会出现====,到底和数学的「相等」有多少出入呢?
在集合论中,相等的三要素:
- 自反性: A等于A
- 对称性: 如果A等于B,那么B等于A
- 传递性: 如果A等于B,而且B等于C,那么A等于C
当你在编程中遇到传说中的NaN(Not A Number),它是在IEEE浮点数规范中明确定义的,然而它不等于任何值,更奇怪的是它却不等于本身。当学到数学的定理的时候我们有没有真正怀疑过?脱离了数学,进入了编程领域,当你遇到了很多百思不得其解的时候,是默认的接受了?还是认真思考过呢?
最后灰常感谢Justjavac给与无限的帮助