首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么int + BigDecimal不起作用?

为什么int + BigDecimal不起作用?
EN

Stack Overflow用户
提问于 2014-09-11 10:37:04
回答 6查看 3.2K关注 0票数 2

我遇到了这个问题,那就是我不能将整数加到BigDecimal中。在代码中,我查看了错误,它显示“二元运算符‘+’的操作数类型不正确”。如何将整数添加到BigDecimal?(在代码中表示为1+ sqf)

代码语言:javascript
复制
BigDecimal sqf = new BigDecimal(Math.sqrt(5));
sqf.setScale(100);
BigDecimal bd = new BigDecimal((1 + sqf) / 2); //Error here (1 + sqf)
bd.setScale(100);
System.out.println(isBuzzNumber(77707));
System.out.println(findHypotenuse(9, 10));
System.out.println("Phi (φ) = " + bd);
EN

回答 6

Stack Overflow用户

发布于 2014-09-11 10:41:28

BigDecimal bd = BigDecimal.ONE.add(sqf).divide(new BigDecimal(2))

标准运算符仅适用于基本类型。

票数 3
EN

Stack Overflow用户

发布于 2014-09-11 10:59:40

up

  • Java没有操作符重载,因此任何适用于原始类型only

  • BigDecimal的标准运算符都不包含在自动装箱机制中,因为它没有原始类型representation

  • Read up BigDecimal API,它将数学运算符实现为方法(这主要需要另一个BigDecimal实例作为操作数。
票数 2
EN

Stack Overflow用户

发布于 2014-09-11 10:41:00

您必须以这两种格式中的任何一种进行转换。BigDecimal是不可变的。

例如

代码语言:javascript
复制
sqf = sqf.add(new BigDecimal(1));

您可以通过构造一个新的BigDecimal类来添加。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25778185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档