Java更改舍入

Java更改舍入,java,Java,我正在做一个收银机类型的应用程序,我在分离美元和美分时遇到了问题。我可以自己得到美元,但不能得到美分。这就是我目前的处境 更改126.7328 126美元 7328美分 我希望美分是73美分,而不是7328美分 String changeString = Double.toString(change); String[] parts = changeString.split("\\."); String part2 = parts[1]; double cen

我正在做一个收银机类型的应用程序,我在分离美元和美分时遇到了问题。我可以自己得到美元,但不能得到美分。这就是我目前的处境

更改126.7328 126美元 7328美分

我希望美分是73美分,而不是7328美分

    String changeString = Double.toString(change); 
    String[] parts = changeString.split("\\.");
    String part2 = parts[1]; 
    double cents5 = Double.parseDouble(part2);
    int cents = (int)cents5

任何帮助都将不胜感激

使用NumberFormat对象格式化数据:

NumberFormat myCurrencyFormat = NumberFormat.currencyInstance();
String moneyString = myCurrencyFormat.format(change);
或者,如果您不想看到货币符号,请使用十进制格式:

DecimalFormat decimalFormat = new DecimalFormat("0.00");
String moneyString = decimalFormat.format(change);

为什么是“\\.”而不仅仅是“.”?您不应该使用浮点值来表示货币。使用整数值或长数值表示美分,使用模100表示更改。请看这个问题:或者使用BigDecimal(尽管在尝试比较和等于时要小心陷入疯狂)@JoePhilllips,因为
在正则表达式中有特殊的含义。请注意,
split(String)
需要一个regex作为参数。@Christian显然我已经很久没有做过任何javax了,但我只希望它是一个2位数的数字,比如73@user3808597然后按照别人的建议去做。。。tackoverflow.com/questions/3730019/why-not-use-double-or-float-to-represente-currency