0

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

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

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

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

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

谁能帮我解决这个问题?

4

2 回答 2

2

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

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

印刷

33329996.67
于 2012-06-30T13:26:01.700 回答
0

要确定逗号后的位数,您必须应用一个小技巧:

首先将逗号右移以获得您想要的位数,然后使用 Math.ceil(float f) 剪切整个数字,然后将逗号移回左侧。

这将说明:

float f = 33329996.667;

float f2 = Math.ceil((f * 100)) / 100;

f2 现在的值为 33329996.67。

希望这可以帮助。

编辑:对于格式化看看这里

于 2012-06-30T13:07:30.893 回答