Tag: double

为什么1/0给出错误但1 / 0.0返回“Inf”?

我只是好奇这个: 在Java中评估1/0时,会发生以下exception: 线程“main”中的exceptionjava.lang.ArithmeticException:/在Foo.main中为零(Foo.java:3) 但是1/0.0被评估为Infinity 。 public class Foo { public static void main (String[] args) { System.out.println(1/0.0); } } 为什么会这样?

for循环,递增加倍

我想为我的问题使用for循环,而不是。 有可能做到以下几点吗?: for(double i = 0; i < 10.0; i+0.25) 我想添加双值。

为什么双加有时正确,有时错?

我知道java有双精度陷阱,但为什么有时候,近似结果是可以的,但有时却不是。 像这样的代码: for ( float value = 0.0f; value < 1.0f; value += 0.1f ) System.out.println( value ); 结果是这样的: 0.0 0.1 0.2 0.3 … 0.70000005 0.8000001 0.9000001

BigDecimal来自Double不正确的值?

我试图从字符串中创建一个BigDecimal。 不要问我为什么,我只是需要它! 这是我的代码: Double theDouble = new Double(“.3”); System.out.println(“The Double: ” + theDouble.toString()); BigDecimal theBigDecimal = new BigDecimal(theDouble); System.out.println(“The Big: ” + theBigDecimal.toString()); 这是我得到的输出? The Double: 0.3 The Big: 0.299999999999999988897769753748434595763683319091796875 有任何想法吗?

Java:双值比较

将双精度值与零进行比较时,我们需要小心吗? if ( someAmount <= 0){ ….. }

添加和减去双打会产生奇怪的结果

因此,当我使用Doubles在Java中添加或减去时,它会给我带来奇怪的结果。 这里有一些: 如果我添加0.0 + 5.1 ,它会给我5.1 。 那是对的。 如果我添加5.1 + 0.1 ,它会给我5.199999999999 (重复9秒的数量可能会关闭)。 那是错的。 如果我减去4.8 – 0.4 ,它会给我4.39999999999995 (同样,重复的9秒可能会关闭)。 那是错的。 起初我以为这只是添加带小数值的双打的问题,但我错了。 以下工作正常: 5.1 + 0.2 = 5.3 5.1 – 0.3 = 4.8 现在,添加的第一个数字是保存为变量的double,尽管第二个变量从JTextField获取文本。 例如: //doubleNum = 5.1 RIGHT HERE //The textfield has only a “0.1” in it. doubleNum += Double.parseDouble(textField.getText()); //doubleNum = 5.199999999999999

在java中比较double和int是否有效?

Utilities.getDistance(uni, enemyuni) <= uni.getAttackRange() Utilities.getDistance返回double,getAttackRange返回int。 上面的代码是if语句的一部分,它必须是true。 那么比较有效吗? 谢谢

双师表现错误

我有一个名为List wordFreqMap的HashMap List wordFreqMap其size为234 wordFreqMap = {radiology=1, shift=2, mummy=1, empirical=1, awful=1, geoff=1, …….} 我想计算每个单词的term frequency 。 term frequency = frequency of term / total number of terms public static Map getTFMap (Map wordFreqMap) { Map tfMap = new HashMap(); int noOfTerms = wordFreqMap.size(); Double tf; for (Entry word : wordFreqMap.entrySet() ) { tf = (double) […]

问题格式化JTable中的字段 – Integer和Double之间的差异

更新 当columnClass为Double时,确认为JTable上的错误无法将给定的对象格式化为数字(错误ID:7051636) 。 您可以随意投票,或者如果您有替代(更好)的解决方案,请将其作为对报告的评论发布。 我正在构建一个JTable,其中包含一个扩展AbstractTableModel的自定义表模型。 我的模型需要支持空行显示和排序。 所以我接受了这篇文章来实现它,现在工作得非常好。 我仍然遇到JTable格式化字段的问题。 假设我有以下型号: public class MyModel extends AbstractTableModel{ public Object[] types= {new Integer(0), “”}; public static final Object EMPTY_ROW = “”; @Override public Object getValueAt(int rowIndex, int columnIndex) { return this.EMPTY_ROW; } public Class getColumnClass(int c) { if (c > this.types.length – 1) return null; else return this.types[c].getClass(); } […]

Java:比较不同的double和Double

我知道Double是一个包装类,它包含了double数。 今天,我看到了另一个主要区别: double a = 1.0; double b = 1.0; Double c = 1.0; Double d = 1.0; System.out.println(a == b); // true System.out.println(c == d); // false 跟我这么奇怪!!! 所以,如果我们每次使用Double ,我们必须做这样的事情: private static final double delta = 0.0001; System.out.println(Math.abs(cd) < delta); 我无法解释为什么Double直接比较错误。 请解释一下。 谢谢 :)