字符串格式加倍到 00,00 - Java
String Format double to 00,00 - Java
我正在尝试使双精度成为这种格式 00,00
Example
9,21341 > 09,21
10,4312 > 10,43
1,01233 > 01,01
42,543 > 42,54
目前我正在使用 String.Format 来四舍五入
String.format("%s %02.2f - ", example.getName(), example.getDouble());
如果双精度数小于 10,则不会在双精度数前面添加额外的零。
Formatter class(这是String.format
方法的基础)使用"fields"的概念进行操作。也就是说,每个字段都有一些特定的大小并且可以被填充。在你的情况下,你可以使用像 %05.2f
这样的格式,这意味着一个大小为 5 的字段,在点之后有 2 个符号,左边用零填充。
但是,如果您需要一些细粒度的数字格式,通常您需要的是 DecimalFormat class,它可以让您轻松自定义数字的表示方式。
示例 (ideone link):
import java.util.*;
import java.lang.*;
import java.io.*;
import java.text.*;
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
DecimalFormat decimalFormat = new DecimalFormat("#00.00");
System.out.println(decimalFormat.format(0.99f));
System.out.println(decimalFormat.format(9.99f));
System.out.println(decimalFormat.format(19.99f));
System.out.println(decimalFormat.format(119.99f));
}
}
输出:
00.99
09.99
19.99
119.99
我正在尝试使双精度成为这种格式 00,00
Example
9,21341 > 09,21
10,4312 > 10,43
1,01233 > 01,01
42,543 > 42,54
目前我正在使用 String.Format 来四舍五入
String.format("%s %02.2f - ", example.getName(), example.getDouble());
如果双精度数小于 10,则不会在双精度数前面添加额外的零。
Formatter class(这是String.format
方法的基础)使用"fields"的概念进行操作。也就是说,每个字段都有一些特定的大小并且可以被填充。在你的情况下,你可以使用像 %05.2f
这样的格式,这意味着一个大小为 5 的字段,在点之后有 2 个符号,左边用零填充。
但是,如果您需要一些细粒度的数字格式,通常您需要的是 DecimalFormat class,它可以让您轻松自定义数字的表示方式。
示例 (ideone link):
import java.util.*;
import java.lang.*;
import java.io.*;
import java.text.*;
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
DecimalFormat decimalFormat = new DecimalFormat("#00.00");
System.out.println(decimalFormat.format(0.99f));
System.out.println(decimalFormat.format(9.99f));
System.out.println(decimalFormat.format(19.99f));
System.out.println(decimalFormat.format(119.99f));
}
}
输出:
00.99
09.99
19.99
119.99