格式为double,左侧和右侧为零

时间:2013-08-30 14:32:55

标签: java double string-formatting

我想根据需要在左侧和右侧格式化一个带有零的双精度。

double myVal = 12.456;

希望字符串为"012.456000"

我试过了:

String.format("%03.06f", myVal);

和其他变体,但它似乎没有格式化小数点左侧的文本。

如果可能的话,我宁愿不为此引入第三方库。

3 个答案:

答案 0 :(得分:5)

使用java.text.DecimalFormat

double myVal = 12.456; 
DecimalFormat formatter = new DecimalFormat("000.000000");      
System.out.println(formatter.format(myVal));

答案 1 :(得分:0)

这是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

答案 2 :(得分:0)

我相信这是你正在寻找的使用十进制格式将在你格式化的左侧或右侧给你你想要的许多零。

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));
  }

}