当前位置: 首页 > 面试题库 >

Java中printf的双精度格式问题

郎俊雅
2023-03-14
问题内容

%s是一个字符串printf,而%d是一个小数,我想…但是放入时

writer.printf("%d dollars is the balance of %s\r\n", bal, nm);

..引发异常,告诉我%d!= lang.double。有想法吗?


问题答案:

%d是供整数使用的%f,它同时适用于floatdouble类型:

double d = 1.2;
float f = 1.2f;
System.out.printf("%f %f",d,f); // prints 1.200000 1.200000


 类似资料:
  • 问题内容: java中双值的乘法运算符的保证精度是多少? 例如,2.2 * 100是220.00000000000003,但是220是双精度数。220.00000000000003是220之后的下一个两倍。 问题答案: 乘法工作正常,但不能精确表示为双精度。最接近的双打是: 2.199999999999999733(0x4001999999999999) 2.200000000000000177(

  • 问题内容: 我该如何克服Java android中双精度乘法的精度问题?请注意,我正在将字符串值转换为double值。 例如:当我将两个double值相乘时: 我得到以下结果:0.8999999999999999 我得到的一些结果是。 0.6 * 3 = 1.7999999999999998; 0.2 * 0.2 = 0.04000000000000001; 等等 除了上述结果外,我想得到以下结果

  • 我似乎找不到一种方法来设置双重格式,将精度限制在小数点后的几个位置,当在标签中显示时。也许我遗漏了一些重要的东西,但我在官方文件中找不到任何东西。 提前感谢您的帮助!

  • 问题内容: 使用double时,如何使用模数运算符处理Java的怪异行为? 例如,你所期望的结果是(事实上,谷歌说,我不是要疯了),但是当我在Java中,我得到运行它。 我了解这是Java存储和处理方式加倍的结果,但是有没有解决的方法? 问题答案: 如果需要精确的结果,请使用精确的类型: 为什么是3.8000 … 003?因为Java使用FPU来计算结果。3.9不可能以IEEE双精度表示法精确存储

  • 问题内容: 我正在编写一个简单的Java程序。我需要从输入中获取一个字符串并将其分为两部分:1-double 2-string。然后,我需要对double进行简单的计算,并将结果发送到具有特定精度的输出(4)。它工作正常,但是当输入为0时出现问题,则不能正常工作。 例如,对于这些输入,输出将是: 1公斤 输出:2.2046 3.1公斤 输出:6.8343 但是当输入为0时,输出应为0.0000,但

  • 问题内容: 我的同事做了这个实验: 对于这个一年级的操作,我希望得到以下输出: 但是意外的输出是: 为什么在如此简单的操作中double会失败?而且如果double不是这项工作的数据类型,我应该使用什么? 问题答案: 在内部以分数形式存储在 二进制文件中 -例如 值-或值-不能以精确的分数形式存储在二进制中,因此不能存储精确的值,并且相减后的值也不太精确。 如果您关心精确的十进制算术,请使用。 您