为什么Java的划分被打破了?

2023-11-27

我是一名经验丰富的 php 开发人员,刚刚开始学习 Java。我目前正在学习 Lynda 的一些课程,但我仍处于早期阶段。我正在编写示例程序,要求用户输入并进行简单的计算之类的事情。

昨天我遇到这样的情况:

double result = 1 / 2;

以我穴居人的大脑,我会想result == 0.5,但不,不是在 Java 中。显然1 / 2 == 0.0。是的,我知道如果我将其中一个操作数更改为双精度,结果也将是双精度。

这实际上让我害怕。我不禁认为这很破碎。认为整数除法会得到整数的想法是非常天真的。我认为这种情况甚至很少见。

但是,由于 Java 的使用非常广泛,并且正在寻找“为什么 Java 的划分被打破了?”没有产生任何结果,我可能是错的。

我的问题是:

  1. 为什么分裂会有这样的表现?
  2. 我还能在哪里找到这样的魔法/巫毒/意外行为?

Java 是一种强类型语言,因此您应该了解表达式中值的类型。如果不...

1 is an int (as 2), so 1/2是 1 和 2 的整数除法,所以结果是0 as an int。然后将结果转换为对应的double值,所以0.0.

整数除法与浮点数除法不同,就像数学中的那样(自然数除法与实数除法不同)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么Java的划分被打破了? 的相关文章

随机推荐

  • 如何为 log4j 设置单独的日志记录流?

    假设我有一堂这样的课 public class MyClass private Logger log LoggerFactory getLogger MyClass class org slf4j LoggerFactory public
  • 在 Chrome 中上传返回 Aw, Snap 页面

    从 chrome 的上次更新 版本 36 0 1985 125 m 开始 我遇到了 uplodify 插件 flash 的问题 Chrome 会显示 噢 Snap Page 有时还会显示 他死了 吉姆 这是我的上传代码
  • Android 文件管理器库 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 诚然 我在 Android 开发方面没有经验 我正在寻找一些 API 可以让我浏览用户文件 而无需通过意图安装单独的应用程序 现在我已经找到了OI
  • java程序中的代理设置

    我正在尝试通过 Eclipse 中的 java 程序使用从 wsdl 生成的客户端连接到 Web 服务 我正在通过代理服务器传递我的请求 但似乎请求没有通过 相同的代理设置在 SoapUI 上运行良好 请在下面找到我设置的系统属性 Prop
  • 如何测试多个变量与单个值的相等性?

    我正在尝试创建一个函数 将多个变量与一个整数进行比较并输出一个由三个字母组成的字符串 我想知道是否有办法将其翻译成Python 所以说 x 0 y 1 z 3 mylist if x or y or z 0 mylist append c
  • 陷阱起火后退出

    拿这个脚本 bin sh fd echo Hello world exit trap fd EXIT INT for g in 1 5 do echo foo sleep 1 done 我想fd从 Control C 或脚本正常退出时触发一
  • 从多对多 SQLAlchemy 和 Postgresql 中删除

    我正在尝试从 sql alchemy 中的多对多关系中删除子对象 我不断收到以下错误 StaleDataError DELETE statement on table headings locations expected to delet
  • Android旋转imageview,我无法在onAnimationEnd()中设置imageview的最终位置

    我想在每次单击按钮时将图像视图旋转 30 度 在第一个 CLIC 上 我可以正确设置动画 但在动画后无法成功更新图像视图位置 当我再次单击按钮时 动画从图像视图的原始位置开始 而不是从第一个动画之后的最终位置开始 这是我的代码 public
  • 将文本读入缓冲区后如何逐行读取?

    首先 我通过调用fread将文本读入缓冲区 然后我想逐行读取它 该怎么做 我尝试使用 sscanf 但似乎不起作用 char textbuf 4096 char line 256 FILE fp fp fopen argv 1 r mems
  • 简单的 Javascript 来模仿在事件处理程序中使用它的 jQuery 行为

    这不是关于 jQuery 的问题 而是关于 jQuery 如何实现这种行为的问题 在 jQuery 中你可以这样做 some link id click function alert this tagName displays A 有人可以
  • 将函数相互嵌套是一种不好的做法吗? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 在嵌套函数中嵌套函数有什么缺点 这是一个例子 JS jQuery function one do something function two do something function
  • Obj-C 有@available。 Swift 有#available。我可以在 C/C++ 中使用什么?

    如果您的代码需要仅在 macOS 10 12 或更高版本中可用的功能 但您希望代码也部署到早期系统版本 您可以使用 available在 Objective C 中 if available macOS 10 12 Code that re
  • 连接“无连接” boost::asio::ip::udp::socket

    我最近通过浏览网络了解了 UDP 套接字 所有解释它的页面都提到 UDP 套接字是 无连接 如果我理解正确的话 这意味着两个套接字之间没有 连接 而是将数据报包发送到指定的端点 而不知道另一端是否正在侦听 然后我开始阅读 boost asi
  • 对泛型类的非泛型引用会导致非泛型返回类型

    我有一个遗留类 该类本身不是泛型 但其方法返回类型之一使用泛型 public class Thing public Collection
  • 函数指针声明 - __P 的作用是什么?

    函数指针定义的通常形式是 int function int int int ptr int int 但我今天看到了一个我不明白的表格 谁能解释一下吗 int close P struct db The P 宏通常用于支持 K R C 时代的
  • 如何为python 2.7.x创建虚拟环境?

    我的 mac OSX 上安装了 3 个版本的 python 机器预装了 Python 2 7 6 我之前安装过python 3 4 3 现在我通过从网站下载pkg文件安装了python 2 7 11 我还安装了 pip 和 virtuale
  • 在不知道年份的情况下使用 DateTime.TryParseExact

    我有一个方法 有时 接受以下格式的字符串 dddd MMMM dd 1 月 4 日星期一 需要解析为 DateTime 我说有时是因为它也可能被传递进来 Today or Tomorrow 作为值 处理这个问题的代码很简单 if strin
  • 收到的电子邮件附件为“noname”

    以下 Python 函数会导致附件被命名为 noname 而本应为 text file txt 正如您所看到的 我尝试了使用 MIMEBase 和 MIMEApplication 的两种不同方法 我也尝试过 MIMEMultipart al
  • RuntimeError:在请求上下文之外工作

    我正在尝试创建一个 保持活动 的 websocket 线程 一旦有人连接到该页面 每 10 秒向浏览器发送一次发射 但我收到错误 并且不确定如何解决它 关于如何实现这项工作有什么想法吗 一旦发送 断开连接 我将如何终止该线程 Thanks
  • 为什么Java的划分被打破了?

    我是一名经验丰富的 php 开发人员 刚刚开始学习 Java 我目前正在学习 Lynda 的一些课程 但我仍处于早期阶段 我正在编写示例程序 要求用户输入并进行简单的计算之类的事情 昨天我遇到这样的情况 double result 1 2