注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

让一切都逝去吧

排骨炖泥菜/猪肝炒苹果/鱼籽狗肉汤/狗头薏米汤

 
 
 

日志

 
 

Java读取浮点型数字  

2009-09-21 16:44:18|  分类: Java |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

        需求是这样的,从oracle中读取数据,再将数据上传至远程的sql server 2000数据库中。其中有一列,oralce中的类型是number(12,3),sql server 2000中的类型是float。直接不做处理插入数据后,sql server 2000中此列的数值小数点位后有很长的一串。

        这种情况,由于sql server 2000中的类型没配置好,规定只有3位小数点,因此你在oracle及程序这边无论做怎么样的努力都是白费,只要你是以float类型插入数据的,最终在sql server 2000那边的数据都会是小数点后有很多位的这种形式。

        这个时候,有种方法,就是取的时候就以字符串类型把浮点数据取出来,插入sql server 2000中时也是以字符串类型往里插,这样得到的数据就是最长有3位小数位了。只是末位如果是0的话就会不显示出来。

        对于浮点型数,设置小数点后的精度主要方法有:
1. 转成字符串,通过匹配小数点 "." 的方式,自己手动截取;
2. float   a   =   123.2334f;   
    float   b   =   (float)(Math.round(a*100))/100;
    //这里的100就是2位小数点,如果要其它位,如4位,这里两个100改成10000
3.  import   java.text.DecimalFormat;      
     String   str  =   new   DecimalFormat("###,###,###.##").format(100.12345);
4. float   ft   =   134.3435f;  
    int   scale   =   2;//设置位数  
    int   roundingMode   =   4;//表示四舍五入,可以选择其他舍值方式,例如去尾,等等.  
    BigDecimal   bd   =   new   BigDecimal((double)ft);  
    bd   =   bd.setScale(scale,roundingMode);  
    ft   =   bd.floatValue();

  评论这张
 
阅读(1565)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017