好的,也许我只需要再看一眼。
我有一个浮点数,我变成了一个字符串。然后,我想将其按周期/小数进行拆分,以将其表示为货币。
这是我的代码:
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使用正则表达式,其中“。”表示匹配任何字符。你需要做
"\\."
编辑:固定,谢谢评论者和编辑