Tag: double

Java double.MAX_VALUE?

大家好,我是计算机系统开发的第一年,所以我对Java很新,掌握了基础知识! 对于我的第一项任务,我必须为燃气公司创建一个燃气表系统,以允许员工创建新的客户账户并修改名称和单位成本等数据以及从他们的账户中存入(存入)资金。 我已经创建了我的构造函数,甚至添加了一个重载方法,虽然我在启动我的一个名为deposit的方法时遇到了问题,这应该从用户帐户中获取资金,而其他方法如recordUnits允许员工输入燃气表读数显示客户使用了多少单位,并更新客户账户的余额,这基本上是客户欠公司的。 在尝试启动存款方法时使用预设信息测试程序时,我得到了这个 Account.deposit(Double.MAX_VALUE); 我不太清楚这意味着什么,似乎无法找到过去它! 如果已经发布,我会道歉,虽然我已经四处寻找合适的答案无济于事。 测试数据和代码如下所示: public class TestGasAccount { public static void main (String [] args) { GasAccount Account = new GasAccount (223,”Havana”,”TQ”,1000); Account.getAccNo(); Account.getName(); Account.getAddress(); Account.getUnits(); Account.getBalance(); Account.recordUnits(1000); Account.getUnits(); Account.getBalance(); Account.deposit(Double.MAX_VALUE); } } 打破 public class GasAccount { private int intAccNo; private String strName; private String strAddress; private double dblBalance; private […]

比较Java中的双精度会产生奇怪的结果

我真的无法理解为什么会发生以下情况: Double d = 0.0; System.out.println(d == 0); // is true System.out.println(d.equals(0)); // is false ?! 然而,这可以按预期工作: Double d = 0.0; System.out.println(d == 0.0); // true System.out.println(d.equals(0.0)); // true 我很肯定这在某种程度上与自动装箱有关,但我真的不知道为什么在使用==运算符和调用.equals时为什么0会被加框 。 这不是暗示违反了equals合同吗? *它是自反的:对于任何非空参考值 * x,x.equals(x)应该返回 *是的。 编辑 : 谢谢你的快速答案。 我认为它的盒装方式不同,真正的问题是:它为什么装箱不同? 我的意思是,如果d == 0d比d.equals(0d)更直观和预期,这将更直观,但是如果d == 0看起来像一个Integer是true比’直觉’ d.equals(0)也应该是真的。

使用双精度时,为什么不(x /(y * z))与(x / y / z)相同?

这部分是学术性的,就我的目的而言,我只需将它四舍五入到小数点后两位; 但我很想知道结果会产生两个略有不同的结果。 这是我写的测试,以缩小到最简单的实现: @Test public void shouldEqual() { double expected = 450.00d / (7d * 60); // 1.0714285714285714 double actual = 450.00d / 7d / 60; // 1.0714285714285716 assertThat(actual).isEqualTo(expected); } 但它输出失败了: org.junit.ComparisonFailure: Expected :1.0714285714285714 Actual :1.0714285714285716 任何人都可以详细解释在引擎盖下发生的事情导致1.000000000000000 X的值不同吗? 我在答案中寻找的一些要点是:精度丢失在哪里? 首选哪种方法,为什么? 哪个是正确的? (在纯数学中,两者都不对。也许两者都错了?)这些算术运算有更好的解决方案或方法吗?

在Java中生成唯一double值的最有效方法是什么

有一些方法,如搜索重复项,但我想知道是否有更好的解决方案来完成这项任务。

如何仅从String的ArrayList中获取整数数据

我读取了一个文本文件并将数据放入String的ArrayList中。 数据就像 China 12351235123 Korea 123532523 USA 12341235123 我只需要将整数数据作为整数来查找整数的第一个数字。 我知道如何找到第一个数字,但我不知道如何只能获取整数数据。

无法从java Double转换为java Date

我遇到了以下格式将double转换为Java日期对象的问题:yyyy-MM-dd HH:mm:ss 我试图将此double值转换为long值,然后使用结果实例化Date对象,但是我收到错误,说我无法从double转换为long。 我的timestamp double值采用以下格式: 1.511554592277516E9 请提前帮助我解决这个问题。

要加倍的现有字符串

如何将现有字符串更改为double。 我有这样的代码声明为字符串,但实际上它从数据库中获取数字..我正在做数字转换的刺痛但现在我不想将其转换为字符串并将其作为数字一直得到它 private String _example1; _example1 = new String(); public String getExample1() { return _example1; } public void setExample1(String s) { _example1 = s; } 所以我只是在上面的代码中用double改变了String字。 private Double _example1; _example1 = new Double(); public Double getExample1() { return _example1; } public void setExample1(Double s) { _example1 = s; } 但我收到这个错误 [exec] com\sample\jack\javabean\ExampleBean.java:48: cannot resolve symbol […]

来自Math.pow(65,17)%3233的令人惊讶的结果

由于某些原因,当处理大数字时,模数运算符不会给我正确的输出,看看代码 double x = Math.pow(65,17) % 3233; 输出应该是2790但是输出是887.0 我确定它有点傻但我无法绕过它。 提前致谢

从String中获取不同的值并将它们转换为Double Values

在我的代码中,我要求用户输入三个不同的值除以空格。 然后,我想将这三个不同的值分配给三个不同的Double变量。 我试过将这样的字符串的第一个字符分配给我的双变量但是我无法成功。 有什么建议? 谢谢! 这是我正在尝试做的事情: int decision = message(); String newDimensions; double newHeight, newWidth, newLength; if(decision == 1){ newDimensions = JOptionPane.showInputDialog(“Please enter the desired amount to be added” + “\nto each dimension.” + “\nNOTE: First value is for Height, second for Width, third for Length” + “\nAlso, input information has to have a blank […]

在Java中双重算术得到错误答案

可能重复: 双重计算产生奇数结果 我正在用Java编写一个处理大量双算术的程序。 我最终到了需要添加0.6666666666666666和-0.666666666666667的地步。 但是,我得到的答案是-3.3306690738754696E-16。 换一种说法, double d1 = 0.6666666666666666; double d2 = -0.666666666666667; System.out.println(d1 + d2); 打印出“-3.3306690738754696E-16”。 为什么会这样? 先感谢您。