问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java.math.BigDecimal cannot be cast to java.lang.Integer说类型不能转换,求解释!

发布网友 发布时间:2022-04-10 18:55

我来回答

6个回答

懂视网 时间:2022-04-10 23:16

问题

数据库decimal类型在使用sql关联查询映射为实体类BigDecimal类型时转换错误,实体类接收值都变成了-1,

原因

暂时没找到原因,猜测应该是类型转换错误,可能小数位数之类引起的

解决办法

在类型转换时用concat语句将其拼接成字符串即可,字符串再映射成BigDecimal就没有出错

// charge_standard为decimal类型
concat(b.charge_standard,‘‘) AS billingPrice,


来自为知笔记(Wiz)

数据库decimal映射BigDecimal类型出错

标签:href   editable   tab   语句   play   出错   数据   div   关联查询   

热心网友 时间:2022-04-10 20:24

将其改为:

classroom.ClassroomBuilding = int.Parse(buildnum)
classroom.ClassroomStep = int.Parse(floor)

隐试转换说明:

1.两个参数至少有一个是 NULL 时,比较的结果也是 NULL,例外是使用 <=> 对两个 NULL 做比较时会返回 1,这两种情况都不需要做类型转换

2.两个参数都是字符串,会按照字符串来比较,不做类型转换

3.两个参数都是整数,按照整数来比较,不做类型转换

4.十六进制的值和非数字做比较时,会被当做二进制串

5.有一个参数是 TIMESTAMP 或 DATETIME,并且另外一个参数是常量,常量会被转换为 timestamp

6.有一个参数是 decimal 类型,如果另外一个参数是 decimal 或者整数,会将整数转换为 decimal 后进行比较,如果另外一个参数是浮点数,则会把 decimal 转换为浮点数进行比较

7.所有其他情况下,两个参数都会被转换为浮点数再进行比较

所以,下面的几个sql语句有相同的效果:

select * from convert_test where areacode=0001 and period>='20170511' and period<='20170511'; 

select * from convert_test where areacode=1 and period>='20170511' and period<='20170511'; 

select * from convert_test where areacode=0001.0 and period>='20170511' and period<='20170511'; 

select * from convert_test where areacode=1.0 and period>='20170511' and period<='20170511';

热心网友 时间:2022-04-10 21:42

Object不能直接转化成Integer
你首先需要把它转化成String
list.get(i).toString();
再使用
Integer.valueOf(list.get(i).toString());
有很多转化都是使用String做中继的。。。

热心网友 时间:2022-04-10 23:17

曾经在一个视频上看到,说BigInteger类的处理时按照字符串的处理方式来进行的,直接的用强制类型转换时不行的,但Integer类可以接string类型,可以使用一个Integer密名实例来接BigInteger类。

热心网友 时间:2022-04-11 01:08

Integer和BigDecimal都是封装类,你用(Integer)这种强制转换肯定是不行的,强制转换只能转换包含继承关系的类或基本类型数据。
BigDecimal d = new BigDecimal(1.2);
Integer i= new Integer(d.intValue());
这样转吧。

热心网友 时间:2022-04-11 03:16

Integer不是基本类型,是int的包装类,无法把包装当做基本类型来用。

比如,char a = 'c'; int b = (Integer)a; 这样也是回报cannot cast错误的。必须是(int)a,用基本类型才能转。这是第一个问题。

第二个问题 你的list.get(i).get("goods_amout")得到的应该是BigDecimal类型的,这个类型,不能用基本类型强转的。举个简单的例子,string a = "c"; int b = (int)a; 可以这样吗?

要转化这个,用intValue(),也就是:
list.get(i).get("goods_amout").intValue() 这样得到的就是个int 的值了。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
在excel中输入产品序号如何直接引出相应的信息 excel表格输序号自动出现内容 戏剧教育主要学什么内容 戏剧教育专业就业前景和就业方向怎么样 戏剧教育专业学什么 2025就业前景怎么样 戏剧教育学什么 戏剧教育专业是本科还是专科 戏剧教育专业要读多少年 戏剧教育是什么专业 贵州省合医在浙江省能直接报销吗 钻攻机E6刀盘计数器位置错误怎么办 在证券公司做企业上市工作的人员需要什么条件? 三年级作文三百字走进商场 来庙里烧香看见观世音菩萨,如来佛祖,财神爷。他们都对我笑,是什么意思... 申请公司对学历有要求吗?初中文凭可以把公司做到上市吗?有这种可能性吗 长安面包车,cm5。2005豪华款Gik这款爬坡动力怎么样?还有其他有没有什么问题,大家。知道吗? 11寸ipad多大 爆炒牛肉要焯水吗 炒牛肉要焯水吗 时风三轮车大灯不会亮 烧保险是什么原因 急急急急急急急急急急 上市公司本科率要求 请问:Gik产品怎么样? 企业上市要查哪些人的学历 时风三轮车老是烧保险丝 关于时风农用三轮车的懂得人热烈欢迎请进!!!我的是时风三轮车农用的,电启动的,当然也是手摇的, 农用时风三轮转向灯开关好着,但灯不亮,是什么原因?大灯不亮,嗽呗不响是怎么回事 iPada2231是什么型号 你好时风三轮车一开灯就烧保险丝:该怎么处理? 电动摩托车:如何看电瓶的参数? 时风农用三轮车保险丝一插上就断。请问是怎么回事?谢谢! 预测一下今年的黄金价格行情会怎么样?黄金价格会下跌吗?sgjoidaghoihrgikhdfikhgfuihgihgkdhfg 廉政第一击 LIM JING DAI YAT GIK怎么样 被人借钱不还怎么办 Gik 水润乳酸菌精华素怎么样? 上市对公司的员工的学历层次有何要求没有? 怎么样炒牛肉才不会老?不要只焯水,做好这2步,牛肉鲜嫩又入味 为啥觉得财神爷的画像一直看着我笑就是这样? 公司在国内上市,对董事长或高管有学历要求吗 上市前公司后期会看毕业证原件吗? 我现在是大专学历 公司要上市必须要有硕士学位 怎样才能以最快的速度拿到硕士学位呢 昨晚失眠了,今天想请假,有没有什么比较少特别的理由请假?不要那些老套的? 昨天晚上失眠没睡觉,第二天要去新单位上班,但没精神,打算请假可以吗 高三了,昨天下午请假了,失眠心里很难受,感觉自己是个废物,不如人,对不起父母老师,受别人白眼。。 在学校老是失眠,也快放寒假了,想请假回家,因为失眠好多天了,实在太累了,学校宿舍太吵了。 初中生一晚上失眠需要请假吗? 失眠很严重可以请假吗 因为失眠问题已经严重影响到工作。可以向单位请病假吗? 失眠请假怎么跟领导说 严重失眠影响工作该如何请假 昨天晚上失眠一夜没睡,今天早上不想去上班我编个什么理由请假呢