-1

我必须对金钱(基本上是美元)进行操作。我必须得到产品的价格,然后乘以数量,并以同样的方式进行交易。

目前我正在使用double并且在某些地方浮动以执行数量操作。他们给我像 13.789689 这样的输出,但我只需要最多 2 位数字。所以我已经申请了

String value = String.format(Locale.ENGLISH, "%.2f", 13.789689);

得到最多2位数。但现在的问题是结果不准确。此外,我要将交易信息保存到数据库中,并显示现金和抄送交易的变化。我对此感到非常沮丧,因为它是用钱运作的,而我正在失去它。请指导我在这种情况下最好的方法。

4

3 回答 3

3

如果您需要确切的结果(您可能会这样做),请不要使用floatdouble用于任何与金钱相关的事情。试试BigDecimal吧。

于 2013-08-30T07:51:24.597 回答
3

没有什么特定于android的。在 Java 中,建议所有的货币计算都按BigDecimal数据类型进行,这样就不会遇到任何舍入问题,float并且double

以下是一些可能对您有所帮助的链接1 , 2 , 3

于 2013-08-30T07:54:24.770 回答
0

你可以用DecimalFormat这个,即

    Double d=13.789689
    DecimalFormat deciFor= new DecimalFormat("##.##");
    String value=deciFor.format(d);

结果值为 13.79

于 2013-08-30T07:54:51.777 回答