java自学网VIP

Java自学网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5399|回复: 5

字符类型转换精度问题

[复制链接]

该用户从未签到

1

主题

3

帖子

15

积分

普通会员

Rank: 2

积分
15
发表于 2014-11-27 15:14:02 | 显示全部楼层 |阅读模式
本帖最后由 善解人衣 于 2014-11-27 15:17 编辑
2 p; |! y2 m( {3 C* y) E) u6 }  i' H2 D! i6 k
如下
! C- [0 f' {6 X7 C) @public static void main(String[] args) {1 }$ }' L: n4 t* Y$ g6 j
        double a= Double.parseDouble("19.9");
8 V* i% z1 _: j  f# i$ _' c        String d = String.valueOf(a* 100);+ }/ ]' D; ]* W0 |" `5 h* p* R( M
        Double dd = Double.parseDouble(d);
& {3 U) y0 ^& D! a4 h0 k        int i=dd.intValue();
, ?0 v9 N. s* g( Q        System.out.println(i);. S/ D. |% p4 G6 t) c/ [4 l
    }* e4 Y( y/ ^8 a# L( k, u
) x- M9 D9 X4 V/ H" \0 F
1 o1 B) A% I, d' u
结果是:1989
: h+ K, R1 }" l. g3 n5 D$ Y为什么,哪里转换出了问题。
$ x$ }9 h- P, @" b" C
$ [; c! i* X  a4 J0 d1 C7 }4 N
回复

使用道具 举报

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

    [LV.Master]出神入化

    2100

    主题

    3758

    帖子

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    66834

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

    发表于 2014-11-27 15:40:14 | 显示全部楼层
    java中double的运算都要转化为bigdecimal来计算,否则容易产生精度问题。
    & H% }9 C0 j8 e7 I& k具体调整:
    # M5 u4 P% w  `) W9 `& [将:String d = String.valueOf(a* 100);  改为
    0 c: n" o: C, [String d = String.valueOf(mul(a,100));
    + w; }+ @' D* T0 N* {* {. ?3 |' K" y7 Y1 G
    增加方法:- P. u3 N( F- H! _; `+ V2 @
    public static double mul(double d1,double d2){
    5 }# f6 }. V: J/ h0 g( g6 d        BigDecimal bd1 = new BigDecimal(Double.toString(d1)); 8 k& g1 P* G/ y+ L+ L$ M! B4 m, y
            BigDecimal bd2 = new BigDecimal(Double.toString(d2));
    / h, s& \# Y0 f5 o$ E        return bd1.multiply(bd2).doubleValue(); % R9 s8 b4 V* M
        }
    回复 支持 反对

    使用道具 举报

  • 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

    主题

    4673

    帖子

    9697

    积分

    普通会员

    Rank: 2

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

    使用道具 举报

    该用户从未签到

    0

    主题

    81

    帖子

    176

    积分

    普通会员

    Rank: 2

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

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2025-4-21 05:01 , Processed in 0.076996 second(s), 30 queries .

    Powered by Javazx

    Copyright © 2012-2022, Javazx Cloud.

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