java.math.BigDecimal cannot be cast to java.lang.String

BigDecimal表示一个大整数,一般情况下很多整型都有个最大值的,但是有时候我们需要处理一些超过这个最大值的值,这个时候就出现了BigDecimal这样的类用于表达大数值,这个错误应该是类型转换过程中出现了问题.

数据从数据库中取出的,把数据库中的整数转成了BigDecimal 类型,不管是什么类型,它们不能强制转换成String类型的,强制转换会报错,强制转换符在引用类型用于父类转子类。而这些类都实现了toString方法可以通过这个方法转成String类型。

数据库  LATITUDE 对应的整数:

Object lat = mapparamfirst.get("LATITUDE");

System.out.println(lat.toString());

时间: 2024-12-25 18:38:04

java.math.BigDecimal cannot be cast to java.lang.String的相关文章

MySQL分段统计SQL写法 与 Mybatis 报错:java.math.BigDecimal cannot be cast to java.lang.Integer

mysql> select -> sum(case when score<60 then 1 else 0 end) as '<60', -> sum(case when score>=60 and score<=69 then 1 else 0 end) as '60~69', -> sum(case when score>=70 and score<=79 then 1 else 0 end) as '70~79', -> sum(ca

数据转换bug花了半天时间 Java.math.BigDecimal cannot be cast to java.lang.String

从数据库取出一个 Count函数 统计的值 在代码中要转成Integer类型的时候 Integer.parseInt((String)map.get("ID_")) 报了一下错误: Java.math.BigDecimal cannot be cast to java.lang.String 解决方法: Object ob = map.get("ID_");先将数据转成 Integer.parseInt(ob.toString()); http://blog.csd

java.math.BigDecimal cannot be cast to java.lang.String &nbsp; ----解决方案

今天在开发的时候遇到了一个问题,在此记录一下,问题的大概意思就是类型不一致不能进行强转 代码如下: rolf.setFuncd((String) rece.get("FUN_CD"));//强转 rolf.setFunid((String) rece.get("FUN_ID")); //强转 rolf.setFunnm((String) rece.get("FUN_NM")); //强转 因为我第二段的代码Orc数据库的字段类型是number,而

java.lang.ClassCastException:java.math.BigDecimal cannot be cast to java.lang.String

1.错误描述 2.错误原因 在hibernate映射文件中,数据库字段id是字符串类型,而在Java封装类中定义成java.math.BigDecimal,导致出错 3.解决办法 将Java封装类中的id属性修改成String类型

[记录]java.math.biginteger cannot be cast to java.lang.long

可以直接使用BigInteger类型进行接收, BigInteger id = (BigInteger)QueryRunner(conn,"SELECT LAST_INSERT_ID",new Scala) java.math.BigInteger cannot be cast to java.lang.Integer java.math.BigInteger cannot be cast to java.lang.Long

Java.math.BigDecimal类

java.math.BigDecimal 类提供用于算术,刻度操作,舍入,比较,哈希算法和格式转换操作. toString()方法提供BigDecimal的规范表示.它使用户可以完全控制舍入行为. 提供用于操作BigDecimal规模两种类型的操作: 缩放/舍入操作 小数点移动操作. 此类及其迭代器实现Comparable接口的所有可选方法. 点击链接查看更多

java.math.BigDecimal

java在运行1.0-0.8时,其结果并不是0.2,而是0.1999999999999996.这是因为 java遵守IEEE754浮点数运算(Floating-pointarithmetic)规范,使用分数与 指数来表示浮点数.例如,0.5会使用1/2来表示,0.75会使用1/2+1/4来表示, 0.875会使用1/2+1/4+1/8来表示,而0.1会使用 1/16+1/32+1/256+1/512+1/4096+1/8192+...无限循环下去,无法精确的表示, 因而造成运算上的误差. 再例如

java.math.BigDecimal保留两位小数,保留小数,精确位数

http://blog.csdn.net/yuhua3272004/article/details/3075436 使用java.math.BigDecimal工具类实现 java保留两位小数问题: 方式一(四舍五入形式保留两位小数,注意模式ROUND_HALF_UP): 四舍五入   double   f   =   111231.5585;   BigDecimal   b   =   new   BigDecimal(f);   double   f1   =   b.setScale(2

解决java.math.BigDecimal divide方法运算结果为无限小数问题

http://samueli.iteye.com/blog/224755 BigDecimal除法运算报错,错误如下:Non-terminating decimal expansion; no exact representable decimal result 原因是: BigDecimal divide(BigDecimal divisor, int scale, int roundingMode) if divisor is zero, roundingMode==ROUND_UNNECE