我想根据需要在左右两侧用零格式化双精度。
double myVal = 12.456;
想要字符串"012.456000"
我试过了:
String.format("%03.06f", myVal);
和其他变体,但它似乎没有格式化小数位左侧的文本。
如果可能的话,我不想为此引入第三方库。
我想根据需要在左右两侧用零格式化双精度。
double myVal = 12.456;
想要字符串"012.456000"
我试过了:
String.format("%03.06f", myVal);
和其他变体,但它似乎没有格式化小数位左侧的文本。
如果可能的话,我不想为此引入第三方库。
double myVal = 12.456;
DecimalFormat formatter = new DecimalFormat("000.000000");
System.out.println(formatter.format(myVal));
这是 i18n(特定于语言环境)的方式:
double myVal = 12.456;
Locale locale = Locale.getDefault(); //replace this with actual locale
NumberFormat nf = NumberFormat.getNumberInstance(locale);
nf.setMinimumIntegerDigits(3);
nf.setMinimumFractionDigits(6);
System.out.println(nf.format(myVal)); //012.456000
我相信这就是您正在寻找的内容,使用十进制格式会在您正在格式化的内容的左侧和或右侧为您提供您想要的许多零。
import java.text.*;
public class leftsideformat
{
public static void main(String[] args)
{
double myVal =12.456;
DecimalFormat leftside = new DecimalFormat("000.0000000000");
System.out.println(leftside.format(myVal));
}
}