保留两位小数,小数部分相同,结果不一致
j dk 1.8。<--pl hd--0/>
DecimalFormat df = new DecimalFormat("##.00");
df.setRoundingMode(RoundingMode.HALF_UP);
System.out.println("1.985 ≈ " + df.format(1.985));
System.out.println("23.985 ≈ " + df.format(23.985));
1.985 ≈ 1.99
23.985 ≈ 23.98
输出如上所述,应与小数部分相同。
您看到的问题来自于在代码中指定“23.985”,当表示为双精度时,它略少一些。
一个可能的解决方案(如果您确实需要它来进行正确的四舍五入)是使用BigDecimal。valueOf创建值。例如
//BigDecimal bd = BigDecimal.valueOf(23.985);
BigDecimal bd = new BigDecimal("23.985");
System.out.println("bd=" + bd);
System.out.println(df.format(bd)); // expected == actual
这就是浮点类型的工作方式。它们可以是近似值。两个数字的近似值不同,因为它们不是相同的数字。在内部,一个数字可能是1.985000000000001,另一个数字可能是23.9849999999。请参见此处。
目前,我在主activity类和widget类中都声明了一个AsyncTask。除了中的结果处理之外,其他代码都是一样的(在activity中,检索到的结果转到activity中的textview,而在小部件中,它转到my widget中的textview)。 我想将移动到一个外部java文件中(以避免代码重复),并通过不同的结果处理方式从其他不同的类(如我的小部件和main activity)调
为什么用于取消引用传递给printf的指针的类型会影响输出,即使类型大小相同: 输出: 我希望最后两行都正确打印0x3ff0000000000000,即IEEE754双浮点中1.0的表示形式。
为什么在添加相同的数字时输出不同? 输出为: 如果我交换值 我得到的输出为:<代码>15.7000000000001 如何获得相同的输出?
本文向大家介绍java集合与数组的相同点和不同点,包括了java集合与数组的相同点和不同点的使用技巧和注意事项,需要的朋友参考一下 数组: 数组可以用来保存多个基本数据类型的数据,也可以用来保存多个对象。 数组的长度是不可改变的,一旦初始化数组时就指定了数组的长度(无论是静态初始化还是动态初始化)。 数组无法保存具有映射关系的数据。 集合: 集合是只用于存储数量不等的对象。 集合的长度是可变的。
我写了这段代码,它只是对n个数字的列表进行求和,以练习浮点运算,但我不明白这一点: 我正在使用float,这意味着我有7位精度,因此,如果我执行10002*10002=100040004的操作,数据类型float的结果将是100040000.000000,因为我丢失了第7位以外的任何数字(程序仍然知道指数,如图所示)。 如果此程序中的输入是 然而,您将看到,当这个程序计算30003*30003=9