java自学网VIP

Java自学网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4049|回复: 5

字符类型转换精度问题

[复制链接]

该用户从未签到

1

主题

3

帖子

15

积分

普通会员

Rank: 2

积分
15
发表于 2014-11-27 15:14:02 | 显示全部楼层 |阅读模式
本帖最后由 善解人衣 于 2014-11-27 15:17 编辑 6 o& }1 R- P. J0 \: T
- n5 a8 G8 P0 Y- o9 H/ n* j
如下3 v7 s+ m( k+ E) D0 q+ I' ?! F$ s: Z8 ~
public static void main(String[] args) {% R2 h' E' ~( P
        double a= Double.parseDouble("19.9");# B- x* r1 Q9 U0 i- B" d/ D$ X% i
        String d = String.valueOf(a* 100);
/ j( |, I8 N" j: X/ B6 ?* X        Double dd = Double.parseDouble(d);
* R9 K3 f! X* n* A2 B9 }8 T        int i=dd.intValue();8 I% d% m2 r# y  }+ S
        System.out.println(i);
5 I* T) z9 D2 C/ A- Y# S- d! `    }
; \$ W' c7 Q3 u$ k
1 _2 L! `+ f$ N6 {7 k8 S$ q6 {/ k# a1 D& `! x
结果是:1989; r' v0 d* c* L
为什么,哪里转换出了问题。
2 O( `0 |) C7 Q+ F3 @' e: M; ~
8 X2 P' }8 v+ b8 N5 f' I
回复

使用道具 举报

  • TA的每日心情
    开心
    2021-5-25 00:00
  • 签到天数: 1917 天

    [LV.Master]出神入化

    2025

    主题

    3683

    帖子

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    66101

    宣传达人突出贡献优秀版主荣誉管理论坛元老

    发表于 2014-11-27 15:40:14 | 显示全部楼层
    java中double的运算都要转化为bigdecimal来计算,否则容易产生精度问题。& T( V! Q9 C' Y
    具体调整:
    / p6 t  {! q' U) S) e- @将:String d = String.valueOf(a* 100);  改为
    * l; k7 K7 s% |5 y! V7 wString d = String.valueOf(mul(a,100));
    , b" S3 {" h0 r: J1 s* m& R, M4 f- Q& O0 S7 z3 l
    增加方法:1 s( q: j( |. u3 _
    public static double mul(double d1,double d2){
    9 F# P& R& ?- L        BigDecimal bd1 = new BigDecimal(Double.toString(d1));
    : r& g) ^, E( c% r6 [2 d' W, ~( s        BigDecimal bd2 = new BigDecimal(Double.toString(d2));
    3 K+ x( j" b% w' x5 w        return bd1.multiply(bd2).doubleValue();
    ! q+ q6 i; r" i) O  p    }
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-5-10 20:36
  • 签到天数: 50 天

    [LV.5]渐入佳境

    2

    主题

    68

    帖子

    917

    积分

    终身VIP

    Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60

    积分
    917
    发表于 2015-4-15 15:49:11 | 显示全部楼层
    不错的 涨姿势了啊  呵呵
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-5-10 20:36
  • 签到天数: 50 天

    [LV.5]渐入佳境

    2

    主题

    68

    帖子

    917

    积分

    终身VIP

    Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60

    积分
    917
    发表于 2015-4-15 15:49:49 | 显示全部楼层
    就喜欢学这样比较细微的知识的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-2-16 15:47
  • 签到天数: 17 天

    [LV.4]略有小成

    0

    主题

    3258

    帖子

    6867

    积分

    普通会员

    Rank: 2

    积分
    6867
    发表于 2015-4-15 15:51:17 | 显示全部楼层
    我这里精度转换也老是出问题的啊啊  没得办法啊
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    81

    帖子

    176

    积分

    普通会员

    Rank: 2

    积分
    176
    发表于 2022-7-8 13:47:27 | 显示全部楼层
    感谢楼主  
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|Java自学网

    GMT+8, 2024-4-29 13:39 , Processed in 0.108376 second(s), 33 queries .

    Powered by Javazx

    Copyright © 2012-2022, Javazx Cloud.

    快速回复 返回顶部 返回列表