我最近正在处理数字,我有一种情况,我希望将双精度值的精度设置为6位数或4位数,具体取决于数据库中存储的值.
例如,如果在数据库中精度设置为4位,则输出必须为,
10.0000.
我试过DecimalFormat并使用字符串##.####,但每次使用符号都很烦人.
有没有更好的方法,如下所示:
Double value = 10.0;
value.setPrecision(4);
Run Code Online (Sandbox Code Playgroud)
小智 254
您可以为此目的尝试BigDecimal
Double toBeTruncated = new Double("3.5789055");
Double truncatedDouble = BigDecimal.valueOf(toBeTruncated)
.setScale(3, RoundingMode.HALF_UP)
.doubleValue();
Run Code Online (Sandbox Code Playgroud)
小智 53
这是一种简单的方法.
String formato = String.format("%.2f");
Run Code Online (Sandbox Code Playgroud)
它将预定设置为2位数o任何.
如果你只想用这种方式打印它.
System.out.printf("%.2f",123.234);
Run Code Online (Sandbox Code Playgroud)
Jay*_*tel 19
设置double值的精度DecimalFormat是很好的技巧.例如,要使用此类导入java.text.DecimalFormat并创建它的对象
double no=12.786;
DecimalFormat dec = new DecimalFormat("#0.00");
System.out.println(dec.format(no));
Run Code Online (Sandbox Code Playgroud)
因此它将在小数点后打印两位数字,它将打印12.79
小智 9
这对我有用:
public static void main(String[] s) {
Double d = Math.PI;
d = Double.parseDouble(String.format("%.3f", d)); // can be required precision
System.out.println(d);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
314357 次 |
| 最近记录: |