java自学网VIP

Java自学网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5322|回复: 5

字符类型转换精度问题

[复制链接]

该用户从未签到

1

主题

3

帖子

15

积分

普通会员

Rank: 2

积分
15
发表于 2014-11-27 15:14:02 | 显示全部楼层 |阅读模式
本帖最后由 善解人衣 于 2014-11-27 15:17 编辑
6 g5 i9 a' \+ \- f/ v' ]1 x; n
! J2 H) R6 T6 n) t如下% J$ U9 M: T9 L' i
public static void main(String[] args) {
  y  C% P) G# [        double a= Double.parseDouble("19.9");6 U1 e4 C1 Q9 S0 R6 P
        String d = String.valueOf(a* 100);2 i/ A4 x/ Q6 o- V4 x' W
        Double dd = Double.parseDouble(d);
3 j, Y; T* e. n3 P( R0 Z        int i=dd.intValue();8 [3 l, f; y1 e- H, u: ^! c* C" L
        System.out.println(i);: ]) O2 R) Z. v0 T! \
    }
  ?2 O9 m1 ?4 h" a
- u: i9 T4 ^* O3 y6 L- `" }
# J* y7 n& F% B结果是:19899 n/ Y9 Q0 i; K% J# F8 I
为什么,哪里转换出了问题。
$ D- p7 O, t% q( k/ k9 }$ _1 G! z2 _
回复

使用道具 举报

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

    [LV.Master]出神入化

    2090

    主题

    3748

    帖子

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    66756

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

    发表于 2014-11-27 15:40:14 | 显示全部楼层
    java中double的运算都要转化为bigdecimal来计算,否则容易产生精度问题。$ v5 R' p1 U  G
    具体调整:
    0 i; S# h* g0 m8 ]1 d$ }将:String d = String.valueOf(a* 100);  改为
    ' I6 i7 S2 r! C+ A! m5 ?String d = String.valueOf(mul(a,100));" S9 N* ~: I4 n! F* L8 O

      @/ Z) v3 i% L增加方法:
    1 D% E) e) [6 L, b6 i- A6 N+ ?) u; zpublic static double mul(double d1,double d2){ / B! \1 K" p8 A4 ~, @
            BigDecimal bd1 = new BigDecimal(Double.toString(d1));
      S+ D1 Y, ]- d/ ~8 P        BigDecimal bd2 = new BigDecimal(Double.toString(d2));
    ! \$ ]" R' u2 b+ K! \        return bd1.multiply(bd2).doubleValue();
    9 I3 S4 W1 J5 C. m/ T' ]    }
    回复 支持 反对

    使用道具 举报

  • 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

    主题

    4588

    帖子

    9527

    积分

    普通会员

    Rank: 2

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

    使用道具 举报

    该用户从未签到

    0

    主题

    81

    帖子

    176

    积分

    普通会员

    Rank: 2

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

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2025-3-26 07:27 , Processed in 0.239177 second(s), 33 queries .

    Powered by Javazx

    Copyright © 2012-2022, Javazx Cloud.

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