Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java十进制格式发布零(0.00)_Java_Decimalformat - Fatal编程技术网

Java十进制格式发布零(0.00)

Java十进制格式发布零(0.00),java,decimalformat,Java,Decimalformat,我的格式化程序有问题,当我给出0.00返回+0,00E,但我希望0,00E String PATTERN = "###,##0.00\u00a0\u00A4"; DecimalFormatSymbols SYMBOLS = DecimalFormatSymbols.getInstance(Locale.FRANCE); DecimalFormat FORMATTER_SIGN = new DecimalFormat(PATTERN, SYMBOLS); FORMATTER_SIGN.setNeg

我的格式化程序有问题,当我给出0.00返回+0,00E,但我希望0,00E

String PATTERN = "###,##0.00\u00a0\u00A4";
DecimalFormatSymbols SYMBOLS = DecimalFormatSymbols.getInstance(Locale.FRANCE);
DecimalFormat FORMATTER_SIGN = new DecimalFormat(PATTERN, SYMBOLS);
FORMATTER_SIGN.setNegativePrefix("-\u00a0");
FORMATTER_SIGN.setPositivePrefix("+\u00a0");
FORMATTER_SIGN.format("0.00") // this
我可以在删除该行时去掉“+”

FORMATTER_SIGN.setPositivePrefix("+\u00a0");
或者改成

FORMATTER_SIGN.setPositivePrefix("");
导致

0,00欧元

注:您的
格式
呼叫对我不起作用,我需要做如下操作:

FORMATTER_SIGN.format(Double.valueOf("0.00")); // this

您可以创建自己的识别零的DecimalFormat(简化示例):


FORMATTER_SIGN.format(0)对于大于零的数字,我不希望仅将其置零,而应显示加号。例如0,00+12,43-232,54+5435,33@Tomas这是你问题中缺少的一个关键要求。
class ZeroAwareDecimalFormat extends DecimalFormat {
    private final DecimalFormat zeroFormat;

    public ZeroAwareDecimalFormat(String posNegPattern, String zeroPattern) {
        super(posNegPattern);
        zeroFormat = new DecimalFormat(zeroPattern);
    }

    @Override
    public StringBuffer format(long number, StringBuffer result, FieldPosition fieldPosition) {
        if (number == 0L) {
            return zeroFormat.format(number, result, fieldPosition);
        } else {
            return super.format(number, result, fieldPosition);
        }
    }

    // Override the other methods accordingly.
    // set... methods should be propagated to super and zeroFormat.
}