我正在尝试编写一个将钱存储在变量中的程序, 所以我正在使用 Bigdecimal 类型,因为这里的其他成员建议它.. 但我想做的是……用户可以输入任何他想表达的意思,他可以输入
24
or
24.0
or
24.00
如您所见,我为用户提供了灵 active ,让他们可以在自己方便的时候打字。但最后变量将存储在一个数组(BigDecimal 数组)中,所以当它存储时我想存储并且只有 2 个小数位。为什么我这么说是因为如果用户输入 24 我想存储 24.00 而不是 24 或 24.0 只是 24.00 或者如果他输入 24.00 那么它将被存储而不对其进行任何修改..如何做到这一点.. 下面提供了示例代码。
BigDecimal bala;
BigDecimal balintake;
static BigDecimal[] bal= new BigDecimal[20];
Scanner sc = new Scanner(System.in);
balintake = sc.nextBigDecimal();
bala.setScale(2,RoundingMode.HALF_UP);
bal[0] = bala;
但这并不符合我的要求。
最佳答案
请记住,BigDecimal 对象是不可变的。所以,当你这样做的时候
balintake.setScale(2,RoundingMode.HALF_UP);
你应该把它赋值给一个变量,比如
balintake = balintake.setScale(2,RoundingMode.HALF_UP);
关于java - 处理金钱和小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12067895/