RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 577860
Accepted
Kromster
Kromster
Asked:2020-10-14 13:07:12 +0000 UTC2020-10-14 13:07:12 +0000 UTC 2020-10-14 13:07:12 +0000 UTC

为什么他们在写数字时要在末尾添加 .0?

  • 772

通常在程序代码中,数字被写为.0末尾的数字。例如:

C:double s = 1.0 / 6.0;

德尔福:var d: Single; begin d := 16.0 + 1.0; end;

记者:var t = 90.0;

其他语言的示例是可能的,但对于初学者,我建议将自己限制在这三种

.0在这些情况下添加的含义是什么?
什么情况下.0可以省略,什么情况下会改变程序行为的逻辑?

javascript
  • 4 4 个回答
  • 10 Views

4 个回答

  • Voted
  1. Best Answer
    zed
    2020-10-16T03:32:08Z2020-10-16T03:32:08Z

    一般来说,.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;如果操作数不是数字,而是整数类型的变量,则使用此构造:

    int k = 2;
    double i = 5 / (double) k; // --> i = 2.5
    
    • 12
  2. Eugene Magdalits
    2020-10-14T15:49:11Z2020-10-14T15:49:11Z

    在字面量的末尾,您需要添加.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。这将帮助您避免意外。

    • 8
  3. BlackWitcher
    2020-10-14T13:28:12Z2020-10-14T13:28:12Z

    您需要为变量的值设置 .0,以便清楚地向语言的编译器(解释器)和程序员表明在使用变量的上下文中我们正在谈论小数。一个可能的例子是 这里。

    1. 了解基本类型以及如何为您正在编程或将要开始编程的平台和语言使用这些类型的变量。

    2. 如果您有可能在计算结果中涉及小数,则使用适当类型的变量。

    • 1
  4. Никандр Орлов
    2020-09-19T08:12:03Z2020-09-19T08:12:03Z

    在古代,当 Fortran 出现时——第一种带有翻译器的高级编程语言,这些是编程学习开始的基础知识。在数字后添加一个点现在称为隐式转换。当需要从整数除法中得到 REAL 类型时,他们写成 Z=(X+0.)/(Y+0.) 或 Z=7./8。

    这当然是程序错误的取之不尽的来源。然后在点后加一个零被认为是有失尊严的。这是打孔卡上的一个额外的洞!

    • 1

相关问题

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    如何停止编写糟糕的代码?

    • 3 个回答
  • Marko Smith

    onCreateView 方法重构

    • 1 个回答
  • Marko Smith

    通用还是非通用

    • 2 个回答
  • Marko Smith

    如何访问 jQuery 中的列

    • 1 个回答
  • Marko Smith

    *.tga 文件的组重命名(3620 个)

    • 1 个回答
  • Marko Smith

    内存分配列表C#

    • 1 个回答
  • Marko Smith

    常规赛适度贪婪

    • 1 个回答
  • Marko Smith

    如何制作自己的自动完成/自动更正?

    • 1 个回答
  • Marko Smith

    选择斐波那契数列

    • 2 个回答
  • Marko Smith

    所有 API 版本中的通用权限代码

    • 2 个回答
  • Martin Hope
    jfs *(星号)和 ** 双星号在 Python 中是什么意思? 2020-11-23 05:07:40 +0000 UTC
  • Martin Hope
    hwak 哪个孩子调用了父母的静态方法?还是不可能完成的任务? 2020-11-18 16:30:55 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    user207618 Codegolf——组合选择算法的实现 2020-10-23 18:46:29 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    Arch ArrayList 与 LinkedList 的区别? 2020-09-20 02:42:49 +0000 UTC
  • Martin Hope
    iluxa1810 哪个更正确使用:if () 或 try-catch? 2020-08-23 18:56:13 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5