JAVA
----------------------------------
double a = 1.5559887918E8insert into tmp (aa) values(1.5559887918E8)DB
-----------
155598879.1800001这是为什么阿??
关键的是,怎么解决啊~~~~~~不能用BigDecimal类型,只能用double
----------------------------------
double a = 1.5559887918E8insert into tmp (aa) values(1.5559887918E8)DB
-----------
155598879.1800001这是为什么阿??
关键的是,怎么解决啊~~~~~~不能用BigDecimal类型,只能用double
1,db里的数据类型,必须是number型的,我没法改
2,java里的数据类型必须是double型的,因为用到了万恶的第三方,它返回的就是double我的意思是,能不能通过java或oracle里的函数,把数值给限制死~~~
*
* @author Administrator
*/
public class Main { /**
* @param args the command line arguments
*/
public static void main(String[] args) {
Float f1 = 0.001f,f2=0.000001f;
BigDecimal bf2 = new BigDecimal(f2);
System.out.print(f1+"---"+f2+"--"+bf2.toPlainString());
}}run:
0.0010---1.0E-6--0.0000009999999974752427078783512115478515625成功生成(总时间:2 秒)
这样可以去掉科学计数,使得插入数据正常。