如何比较货币数字格式的值

时间:2019-11-16 06:18:02

标签: java compare number-formatting currency-formatting

2 个答案:

答案 0 :(得分:0)

首先,请添加代码而不是图像。很难为图像中的代码提供帮助。

与==的字符串比较可能会或可能不会返回true。使用等于

所以您的代码给出了以下输出

pod [podfile] --version

输出:

public static void main(String[] args) {
    Locale br = new Locale("pt", "BR");
    NumberFormat nf = NumberFormat.getCurrencyInstance(br);
    float d = 466.56f;
    System.out.println(nf+" : "+nf.format(d));
    System.out.println(nf.format(d) == "R$ 466,56");  // will return false.
    System.out.println(nf.format(d).equals("R$ 466,56")); // compare string with equals
}

答案 1 :(得分:0)

问题是,空格有不同的unicode。我键入时获取的空格的Unicode为'\ u0020',但NumberFormat.getCurrencyInstance.format(float)方法返回相同的字符串,但该空格具有Unicode字符'\ u00a0',并且此Unicode字符已从isWhitespace()方法中排除。这就是为什么它为我返回假的原因。