我必须编写一个符合以下要求的程序:
我有一个float类型的变量,比如说float a = 3333.333f;
我有一个int类型的变量,比如int b = 9999;
当我在计算器中执行* b时,结果将是33329996.667
将小数位四舍五入到2位后,我想在java中将值打印为33329996.67。我尝试使用long,double,float,big decimal,但无法成功。
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:2)
float
只有7位数的精度,因此对于超过7位的结果来说,它不是一个好的选择。 double
精度高达16位,是更好的选择。
double a = 3333.333;
int b = 9999;
System.out.printf("%.2f", a * b);
打印
33329996.67
答案 1 :(得分:0)
要确定逗号之后的位数,您必须应用一个小技巧:
首先将逗号向右移动以获得您想要的数字位数,然后剪切整数,例如使用Math.ceil(float f)然后将逗号移回左侧。
这将说明:
float f = 33329996.667;
float f2 = Math.ceil((f * 100)) / 100;
f2现在的值为33329996.67。
希望这有帮助。
编辑:格式化看看here