java - 浮点到大十进制

标签 java

我必须编写一个具有以下要求的程序:

  1. 我有一个 float 类型的变量,例如 float a = 3333.333f;

  2. 我有一个 int 类型的变量,例如 int b = 9999;

当我在计算器中执行a*b时,结果将是33329996.667

将小数四舍五入到 2 位后,我想在 java 中将该值打印为 33329996.67。我尝试使用 long、double、float、bigdecimal,但无法成功。

谁能帮我解决这个问题吗?

最佳答案

float 只有 7 位精度,因此对于超过 7 位的结果来说它不是一个好的选择。 double 的精度高达 16 位,是更好的选择。

double a = 3333.333;
int b = 9999;
System.out.printf("%.2f", a * b);

打印

33329996.67

关于java - 浮点到大十进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11274247/

相关文章:

java - 如何将java swing ImageIcon图像保存到文件?

java - Jubula 无法启动我的应用程序

java - 有没有一种快速识别 String 或 TextView 中的 HTML ASCII 代码的方法?

java - 如何在 JtextPane 中设置行间距?

java - 这三个特殊的浮点值是什么意思 : positive infinity, 负无穷大,NaN?

java - 如何在 Java 中获取 protobuf 重复字段构建器?

Java:使用数组指向另一个数组时遇到问题

java - Win 7 64 位上的 Netbeans 6.8 非常慢(Scala 插件)

java - 在 Java 中使用 Selenium - 无法识别元素(表中)

java - 尝试理解基本的 WordCount MapReduce 示例