草庐IT

im2double

全部标签

java - 将 double (或 float )转换为整数时会发生什么?

我正在练习一些简单的2D游戏编程,并提出了一个理论,即在动画期间(图像位置的实际变化最好用float计算)。我有一种感觉,如果你用整数移动图像,动画就不会那么流畅。在Java中,您似乎无法使用float绘制图像来为图像指定位置。但是显然,当您最初声明您的x和y时,您可以将它们声明为Double或Float,并且当涉及到实际绘制图像时,您必须转换他们到整数。就像我发现HERE:/***Drawthisentitytothegraphicscontextprovided**@paramgThegraphicscontextonwhichtodraw*/publicvoiddraw(Grap

java - 遍历每个可能的 double 值

考虑您想要测试每个可能的输入值的情况。创建一个可以遍历所有可能的整数的情况相当容易,因为您只需将值递增1并重复即可。您将如何对所有可能的double值执行相同的想法? 最佳答案 您可以遍历所有可能的long值,然后使用Double.longBitsToDouble()为每个可能的64位组合获取double。但是请注意,这需要一段时间。如果您需要对每个double值进行100纳秒的处理,则大约需要(并非所有位组合都是不同的double,例如NaN)2^64*1e-7/86400/365年,这更多在单个CPU上比16e11/86400/

java - new Double(someString) 和 Double.parseDouble(someString) 有什么区别

据我所知,newDouble(someString)和Double.parseDouble(someString)给我的结果完全相同。我有什么理由想要使用一个而不是另一个吗? 最佳答案 一个返回Double;另一个,double。本文讨论了原始Java类型和对应的包装器类型之间的差异,例如here. 关于java-newDouble(someString)和Double.parseDouble(someString)有什么区别,我们在StackOverflow上找到一个类似的问题:

java - 在 JTable 中对 double 值进行排序

我发现了很多与此相关的问题,但我还没有找到解决问题的简单方法。我找不到使我的JTable正确排序Double值的方法。我扩展了AbstractTableModel以接收一个类数组并返回每列的正确类型:classTableModelModextendsAbstractTableModel{privateArrayListdata;privateString[]headers;privateClass[]types;TableModelMod(String[]heads,ArrayListdatas,Class[]classes){headers=heads;data=datas;type

java - 为什么这个浮点文本值可以解析为double?

有人知道为什么下面的代码片段不会抛出NumberFormatException吗?publicclassFlIndeed{publicstaticvoidmain(String[]args){System.out.println(newFlIndeed().parseFloat("0xabcP2f"));}publicfloatparseFloat(Strings){floatf=0.0f;try{f=Float.valueOf(s).floatValue();returnf;}catch(NumberFormatExceptionnfe){System.out.println("In

java - long 1l,float 1f,double 1d,byte呢?

long1l,float1f,double1d,byte呢?longl=1l;floatf=1f;doubled=1d;//byteb=1?;byte的等价物是什么?存在吗? 最佳答案 不,没有可以附加到数字字面量以使其成为字节的后缀。参见3.10Literals在Java语言规范中。 关于java-long1l,float1f,double1d,byte呢?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.

java - 为什么 junit4 没有 Assert.assertArrayEquals() for double[]s?

在Junit4中似乎有Assert.assertArrayEquals()方法用于除double之外的所有原语,例如Assert.assertArrayEquals(int[]expected,int[]actual)和Assert.assertArrayEquals(char[]expected,char[]actual)但不是Assert.assertArrayEquals(double[]expected,double[]actual,doubleeps)或Assert.assertArrayEquals(double[]expected,double[]actual,doubl

java - scala:为什么 1/0 是算术异常但 1.0/0.0 = Double.Infinity

似乎不一致的是,在Scala中,整数算术div除以零抛出java.lang.ArithmeticException:/byzero,但float算术(1.0/0.0)返回Double.Infinity。我理解,从类型的角度来看,同时拥有Double.Infinity和Integer.Infinity可能很棘手,但我假设使用scala强大的类型系统,他们可以找到其他方法来解决这方面的问题.还有什么我想念的可以更好地解释这两种不同的行为吗? 最佳答案 这是硬件限制,不是软件限制,原因很简单:IEEE754浮点运算明确支持+Inf和-In

java - 方法重载显示 'incompatible type error' 带 float 但不带 double

我试过这个方法重载代码,但我得到了错误nosuitablemethodfoundforadd(double,double)代码:classAdder{staticfloatadd(floata,floatb){returna+b;}staticintadd(inta,intb){returna+b;}}classTestOverloading1{publicstaticvoidmain(String[]args){System.out.println(Adder.add(11.5,11.5));System.out.println(Adder.add(27,21));}}在编写时,参数

java - 如何在计算期间存储数百万个 Double?

我的引擎正在X上执行1,000,000次模拟交易。在每次模拟期间,对于每笔交易,可以验证特定条件。在本例中,我将值(double)存储到一个数组中。每笔交易都有自己的值列表(即这些值独立于一笔交易与另一笔交易)。在所有模拟结束时,对于每笔交易,我都在他的List上运行一个算法得到一些输出。不幸的是,该算法需要这些值的完整列表,因此,我无法修改我的算法以“即时”计算输出,即在模拟期间。在“正常”条件下(即X较低,并且条件验证的时间少于10%),计算正确结束,即使这可能会得到增强。当我有很多交易(例如X=30)并且我几乎所有的模拟都验证了我的特定条件(比如说90%的模拟)时,我的问题就出现