好的,也许我只需要再看一眼。

我有一个浮点数,我变成了一个字符串。然后,我想将其按周期/小数进行拆分,以将其表示为货币。

这是我的代码:

float price = new Float("3.76545");
String itemsPrice = "" + price;
if (itemsPrice.contains(".")){
    String[] breakByDecimal = itemsPrice.split(".");
    System.out.println(itemsPrice + "||" + breakByDecimal.length);
    if (breakByDecimal[1].length() > 2){
        itemsPrice = breakByDecimal[0] + "." + breakByDecimal[1].substring(0, 2);
    } else if (breakByDecimal[1].length() == 1){
        itemsPrice = breakByDecimal[0] + "." + breakByDecimal[1] + "0";
    }
}

如果您执行此操作并运行它,则在第6行(在上面的代码中)将获得数组索引超出范围的错误,因为小数点后没有任何内容。

实际上,在第5行上,当我打印出数组的大小时,它为0。

这些是对错误的荒谬,因为它们不是我简单忽略的东西。

就像我说的那样,我恰恰需要另一双眼睛,所以当指出对您显而易见的东西时,请不要粗鲁,但我却忽略了它。

提前致谢!

最佳答案

split使用正则表达式,其中“。”表示匹配任何字符。你需要做

"\\."

编辑:固定,谢谢评论者和编辑

07-24 20:10