如何设置双倍的最大长度?
double divSum = number1 / number2;
String divDisplay = number1 + " / " + number2 + " = " + divSum + " ";
JLabel divSumLabel= new JLabel();
divSumLabel.setText(divDisplay)
如何设置divSum
的最大长度?
1 / 3 =
0.333333...
如何设置最大长度,因此只有0.333
?
我能做到:
int maxLenght = 3;
String stringDivSum = String.valueOf(divSum);
String shortDivSum = null;
if(stringDivSum.length() > maxLenght){
shortDivSum = stringDivSum.substring(0, maxLenght);
}
String divDisplay = number1 + " / " + number2 + " = " + shortDivSum + " ";
但是,当我1 / 3
时,它打印出1 / 3 =
0.3
?
答案 0 :(得分:3)
使用
String.format(...)
double divSum = Double.parseDouble(String.format("%.3f",(double)number1 / number2)) ;
精确,双倍。
我们可以指定double或float的精度。我们使用“f”来 表示一个浮点。在此之前,我们指定“.3”表示“三 小数点后的数字。“
答案 1 :(得分:0)
double dblValue2 = Math.round( .333333 * 1000.0 ) / 1000.0;
答案 2 :(得分:0)
这会对你有所帮助
String.format("%.2f", (double)value);
答案 3 :(得分:0)
你可以尝试
System.out.format("%.2f + %.2f = %.2f",number1,number2,divsum)
你基本上告诉格式化程序期望3个浮点数带有2个小数点%.2f
。根据您的需要提供变量非常重要,因此编写,number1,number2,divsum
将产生与编写,number2,number1,divsum
不同的结果。如果要打印int,short或long,则使用%d
。如果要打印字符串,请使用%s
。但你也可以google。
此外,在数学运算的情况下,将数字数据存储在String中是一种毫无意义的练习,只会使你的代码膨胀。
答案 4 :(得分:0)
如果要以3的比例(即小数点后3位数)存储除法结果,则需要使用BigDecimal
。该类允许对十进制值进行任意精度计算。
int number1 = 1, number2 = 3;
BigDecimal divSum = BigDecimal.valueOf(number1).divide(BigDecimal.valueOf(number2), 3, RoundingMode.DOWN);
BigDecimal
的{{3}}函数可以采用比例(此处设置为3)和舍入模式(此处设置为divide(divisor, scale, roundingMode)
,此舍入模式在达到比例后截断,这就是我们想要的)。这将执行除法,结果将以3的比例向下舍入。
然后您可以使用以下方式打印结果:
String divDisplay = number1 + " / " + number2 + " = " + divSum + " ";
System.out.println(divDisplay); // prints "1 / 3 = 0.333"