Java 货币的四舍五入双倍值
在文本视图中显示的值舍入时遇到很多麻烦 我基本上想把它四舍五入到小数点后两位,但现在我得到了一长串不同的数字 我在玩BigDecimal,但到目前为止没有运气Java 货币的四舍五入双倍值,java,android,double,bigdecimal,Java,Android,Double,Bigdecimal,在文本视图中显示的值舍入时遇到很多麻烦 我基本上想把它四舍五入到小数点后两位,但现在我得到了一长串不同的数字 我在玩BigDecimal,但到目前为止没有运气 public void calc() { BigDecimal bd = new BigDecimal(subTotal); bd.setScale(2, BigDecimal.ROUND_DOWN); total.setText(String.valueOf(bd)); } 请尝
public void calc() {
BigDecimal bd = new BigDecimal(subTotal);
bd.setScale(2, BigDecimal.ROUND_DOWN);
total.setText(String.valueOf(bd));
}
请尝试以下代码:
double roundTwoDecimals(double d) {
DecimalFormat twoDForm = new DecimalFormat("#.##");
return Double.valueOf(twoDForm.format(d));
}
下面的内容对我有用
BigDecimal bd = new BigDecimal(subTotal);
bd = bd.setScale(2, BigDecimal.ROUND_HALF_UP);
total.setText(String.valueOf(bd));
// Input: 9.888888 -> Output: 9.89
// Input: 9f -> Output: 9.00
这样做很有效,但当我不断添加时,我最终又得到了尾随的零。有什么想法吗?也许你应该在显示之前格式化它!!不要使用浮点值来表示货币!看见