q:今天我的侄子问我1+1等于多少,我说当然是2咯,他很狡猾的笑着说我错了,然后我问他为什么错,他瞄了我一眼说:“根本无法确定一个唯一的答案,在数学上你可以很确定的说是2,不过我并没有限定范围哟!”那一瞬间我想个傻子被他嘲弄了一番。
q:不会吧?跟我们的c#话题有关??怎么个有关法? 【相关文章:JAVA编程规范】
a:哈哈。看来你的侄子的确聪明过人。没错,没有限定范围,我们当然无法给出一个确定的答案,这也跟我们今天的话题——类型与类型系统有关。 【扩展阅读:用C#操纵IIS(代码)】
q:他们应该具有可加性。 【扩展信息:PHP中查询SQL Server或Syb】
a:嗯,这样吧,我问你,要使得1+1的结果有效,我们至少要为这两个“1”限定一些什么条件?
a:在具体一点!
q:嗯,他们应该是同一类别的。
a:对!非常对!就是同一类别,我们总不能要求一个苹果加上一台风扇会有满意的唯一的结果吧!同样的道理,我们要使得相关的式子在电脑上有效,至少我们要限定每一个被操作的因子都是可以归为某一个类别的。这就导出了类型(type)。
q:那么,这个跟c#的类型有什么联系呢?
a:这样吧,我们不说1+1了,我们说说你老婆每个月的家庭财政管理工作。我敢肯定,你老婆不会愚蠢到把数字跟物品混在一起计算收支的情况,她肯定会把相关的物品先进性换算,而实际上,我们每个人在处理财务工作的时候,都统一使用以货币为单位的数字,对吗?假如你这个月收入10000元,支出5000元,那么你可以很快地得出结论,你们这个月有5000元可以存入银行。但这等事怎么在电脑里,我的意思是在c#里面表达呢?电脑没有我们那么聪明,知道10000-5000=5000,因为它不能够从这个简单的式子里面知道这些数字是什么类型的。于是,我们就要首先告诉他这些数字的类型!
q:那么,我们怎么告诉c#这些额外的信息呢?
a:这个很简单,我们计算的时候有小数的吧,在电脑里面叫做浮点数,我们只要告诉电脑,这些是浮点数,再告诉他这条式子,它就会给出结果我们的了。别的不说,我们先来看看代码:
double incoming = 10000.00; double outgoing = 5000.00; double result = incoming - outgoing; 然后你得到的result就是算出的结果:5000了。q:这些incoming、outgoing、result等,是什么来的?double又是什么来的?
... 下一页