In Java, the `NumberFormat`

class of `java.text`

package can be used to format numbers. For formatting a number as a percentage string with fraction digits, you can use the `getPercentInstance()`

method that returns a percentage format for the current default `Locale`

.

Here is a sample code snippet showing how to format a number as a percentage string with two digits of fractions:

```
package org.kodejava.text;
import java.text.NumberFormat;
public class FormatPercentage {
public static void main(String[] args) {
double number = 0.12345;
// Get an instance of NumberFormat for percentage
NumberFormat percentFormat = NumberFormat.getPercentInstance();
// Set the fraction digits - change this value to control the
// number of fraction digits.
percentFormat.setMinimumFractionDigits(2); // set the minimum
percentFormat.setMaximumFractionDigits(4); // set the maximum
// Format the number as a percentage
String formattedPercent = percentFormat.format(number);
System.out.println("Number as percentage: " + formattedPercent);
}
}
```

Output:

```
Number as percentage: 12.345%
```

In the above example, `0.12345`

will be formatted as `12.35%`

because we have set the `MinimumFractionDigits`

to `2`

which means up to two decimal points will be included in the formatted percentage. If we also set the `MaximumFractionDigits`

it will allow us to have up to four decimal points in the output value, here we have `12.345%`

.

Note that the actual percentage is calculated by multiplying the number by `100`

, so `0.12345`

becomes `12.345%`

and then rounded to `12.35%`

(because of the fraction digits setting, in this case we only set the minimum fraction digits to two decimal points).

We can also use the `DecimalFormat`

class. The `DecimalFormat`

class in Java is used to format decimal numbers. It is a subclass of `NumberFormat`

and you can customize the format of your number using it.

Here’s a simple example of how you can format a number as a percentage string using `DecimalFormat`

:

```
package org.kodejava.text;
import java.text.DecimalFormat;
public class DecimalFormatPercentDemo {
public static void main(String[] args) {
double number = 0.123;
// Create a new DecimalFormat instance with a percentage pattern
DecimalFormat df = new DecimalFormat("#%");
// Set the number of fraction digits
df.setMinimumFractionDigits(2);
// Format the number into a percentage
String percentage = df.format(number);
System.out.println(percentage);
}
}
```

This program will output 12.30%

The `"#%"`

pattern means that the number should be formatted as a percentage. And `df.setMinimumFractionDigits(2)`

; means that the decimal will be formatted to two places.

The `DecimalFormat`

will automatically multiply our value by 100, which is why 0.123 appears as 12.30%.