如何使用String.format将Java中的long转换为货币格式的String

时间:2012-10-12 16:04:47

标签: java long-integer string.format

我需要了解如何使用以下方案将long值转换为toString()方法中的货币格式字符串:

  • 如果给定long值= 9287,则需要显示为$ 92.87
  • 如果给定长值= -9287,则需要显示为$ -92.87
  • 如果给定long值= 100000000,则需要显示为$ 1,000,000.00
  • 如果给定长值= 49,则需要显示为$ 0.49

赞赏弦乐大师的任何帮助。

3 个答案:

答案 0 :(得分:1)

public static void main(String [] args){

       DecimalFormat f = new DecimalFormat("$#,##0.00;-$#,##0.00");

       //test with
       long num1 = 9287;
       long num2 = -9287;
       long num3 = 100000000;
       long num4 = 49;

       System.out.println("num1 = "+f.format(num1/100.0));
       System.out.println("num2 = "+f.format(num2/100.0));
       System.out.println("num3 = "+f.format(num3/100.0));
       System.out.println("num4 = "+f.format(num4/100.0));
}

答案 1 :(得分:0)

我希望你使用的是Java。试试这个:

            import java.text.NumberFormat;

            NumberFormat f = NumberFormat.getCurrencyInstance();
            System.out.println(f.format(doubleValue(yourVar)/100));

答案 2 :(得分:0)

String.format()不支持货币格式。因此,您需要自己插入货币符号或使用java.text包。

package tests;

import java.util.Locale;

public class App201210130101 {

/**
 * @param args
 */
public static void main(String[] args) {
    long value;

    value = 9287;
    print(value);

    value = -9287;
    print(value);

    value = 100000000;
    print(value);

    value = 49;
    print(value);
}

public static void print(long value) {

    System.out.println(String.format(Locale.US, "$%,.2f", (double)value/100));
}

}