1

我需要学习如何在具有以下场景long的方法中将值转换为货币格式的字符串:toString()

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

感谢字符串大师的任何帮助。

4

3 回答 3

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));
}
于 2012-10-12T19:59:10.713 回答
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));
}

}
于 2012-10-12T21:11:34.333 回答
0

我希望你正在使用 Java。尝试这个 :

            import java.text.NumberFormat;

            NumberFormat f = NumberFormat.getCurrencyInstance();
            System.out.println(f.format(doubleValue(yourVar)/100));
于 2012-10-12T16:16:28.860 回答