我想做一些简单的求和,一些用BigDecimal型表示的货币值.

BigDecimal test = new BigDecimal(0);
System.out.println(test);
test.add(new BigDecimal(30));
System.out.println(test);
test.add(new BigDecimal(45));
System.out.println(test);

显然,我不太理解BigDecimal个算术,请看后面的输出.

Test
0
0
0

有人能帮我吗?

推荐答案

BigDecimal是不变的,所以你需要这样做:

BigDecimal result = test.add(new BigDecimal(30));
System.out.println(result);

Java相关问答推荐

Spring Boot找不到Mapper bean

Proguard配置以保留具有参数的注释的成员

将linkedHashMap扩展到Java中的POJO类

CriteriaQuery with max

Character::Emoji不支持带数字的字符吗?

有没有一种方法使保持活动设置专用于java.net.http.HttpClient的一个实例

是否保证在事务性块的末尾标记违反约束?

我需要生成一个文件来整合每个特性执行的所有JSON结果

如何创建同一类的另一个对象,该对象位于变量中?

GSON期间的Java类型擦除

Helidon 4和Http API

OpenGL ES 3.0-纹理黑色

测试容器无法加载类路径初始化脚本

使用OAuth 2.0资源服务器JWT时的授权(授权)问题

在Ubuntu 23.10上使用mp3创建JavaFX MediaPlayer时出错

为什么StandardOpenOption.CREATE不能通过Ubuntu在中小企业上运行?

IntelliJ IDEA依赖项工具窗口丢失

如何调整JButton的大小以适应图标?

JPA无手术同品种器械可能吗?

ResponseEntity.控制器截断响应的JSON部分