通常在程序代码中,数字被写为.0末尾的数字。例如:
C:double s = 1.0 / 6.0;
德尔福:var d: Single; begin d := 16.0 + 1.0; end;
记者:var t = 90.0;
其他语言的示例是可能的,但对于初学者,我建议将自己限制在这三种
.0在这些情况下添加的含义是什么?
什么情况下.0可以省略,什么情况下会改变程序行为的逻辑?
通常在程序代码中,数字被写为.0末尾的数字。例如:
C:double s = 1.0 / 6.0;
德尔福:var d: Single; begin d := 16.0 + 1.0; end;
记者:var t = 90.0;
其他语言的示例是可能的,但对于初学者,我建议将自己限制在这三种
.0在这些情况下添加的含义是什么?
什么情况下.0可以省略,什么情况下会改变程序行为的逻辑?
一般来说,
.0与数字相加会改变其类型并将其从整数转换为小数(浮点数)。数字类型的这种变化会影响它在内存中的存储方式以及可以对其执行的操作方式和操作。在JS中,添加
.0是绝对没有意义的,因为 其中所有数字最初都是小数。在 Delphi 中,也不需要手动将整数转换为小数,因为 编译器在需要的地方自行处理得非常好。两个整数相除的运算总是返回一个小数,不能错误地赋值给一个整数。对于需要执行整数除法的特殊情况,有一个特殊的运算符
div。但是在 C 和其他一些语言中,对于整数和普通除法,使用相同的除法运算符,
/其行为不同,具体取决于操作数的类型:double i = 5 / 2;将给出2.0(运算结果的小数部分被丢弃,得到一个整数,然后将其转换为目标类型double)。double i = 5 / 2.0;给出2.5.在 C
.0中,您可以指定浮点数类型 (float/double),而不是在数字前,即 执行类型转换:double i = 5 / (double) 2;如果操作数不是数字,而是整数类型的变量,则使用此构造:在字面量的末尾,您需要添加
.0如果获取浮点类型对您很重要。我将给出一个 C/C++ 示例,但它也与 Java、C# 和许多其他语言相关:double X = 15 / 2; // Выведет 7这里变量的类型是
double,因此您可能认为答案是 7.5,但事实并非如此。由于 和15没有2小数部分,因此在计算时将它们视为整数,先除以整数(15 / 2 = 7),然后将结果转换并写入 类型的变量double。这可以通过向一个或两个文字添加一个空的小数部分来纠正。如果其中一个操作数是浮点数,那么第二个操作数也会被转换为浮点数,你会得到正确的结果:
double X = 15.0 / 2; // Выведет 7.5作为 C++ 和类似语言的一般规则,
.0当您期望像float或之类的响应时,附加到文字double。这将帮助您避免意外。您需要为变量的值设置 .0,以便清楚地向语言的编译器(解释器)和程序员表明在使用变量的上下文中我们正在谈论小数。一个可能的例子是 这里。
了解基本类型以及如何为您正在编程或将要开始编程的平台和语言使用这些类型的变量。
如果您有可能在计算结果中涉及小数,则使用适当类型的变量。
在古代,当 Fortran 出现时——第一种带有翻译器的高级编程语言,这些是编程学习开始的基础知识。在数字后添加一个点现在称为隐式转换。当需要从整数除法中得到 REAL 类型时,他们写成 Z=(X+0.)/(Y+0.) 或 Z=7./8。
这当然是程序错误的取之不尽的来源。然后在点后加一个零被认为是有失尊严的。这是打孔卡上的一个额外的洞!