java自学网VIP

Java自学网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4030|回复: 5

字符类型转换精度问题

[复制链接]

该用户从未签到

1

主题

3

帖子

15

积分

普通会员

Rank: 2

积分
15
发表于 2014-11-27 15:14:02 | 显示全部楼层 |阅读模式
本帖最后由 善解人衣 于 2014-11-27 15:17 编辑
% `5 m" Z3 Z' J! b$ m
0 d2 c2 i/ N% ~& w如下
& e, _4 i4 t$ i+ R4 _( L0 _public static void main(String[] args) {+ G- y+ n0 c$ I& x, v( c( V
        double a= Double.parseDouble("19.9");
3 g) U, {2 M4 N# c$ ?/ G3 Z/ K        String d = String.valueOf(a* 100);
$ s9 y5 H0 E: D+ d/ o0 [        Double dd = Double.parseDouble(d);1 p  b% C% t$ W$ p' e1 P4 K
        int i=dd.intValue();
( V/ e3 V" v8 G3 n8 d% P        System.out.println(i);
3 a' s. k( t$ L& u; ?0 C    }
" a# h" m8 C- L( g# L# |
% A" Q) C! l4 ~, _
; ]% {8 F, _* F  f. i6 G结果是:1989" s' Y6 O- I+ j4 r5 p3 I0 l# O
为什么,哪里转换出了问题。0 K' e  ^/ R3 n: n4 w# y
8 n( V$ A) B2 P; L: f
回复

使用道具 举报

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

    [LV.Master]出神入化

    2025

    主题

    3683

    帖子

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    66083

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

    发表于 2014-11-27 15:40:14 | 显示全部楼层
    java中double的运算都要转化为bigdecimal来计算,否则容易产生精度问题。
    ' l( F9 M' {% Y" V具体调整:
    3 U/ M7 O& c1 Q# m将:String d = String.valueOf(a* 100);  改为
    - ~$ @' V2 S& q  g6 w1 h3 qString d = String.valueOf(mul(a,100));
    % F9 w, @! l) \' I% B! u: o/ l- l; n: B6 t0 e1 F
    增加方法:1 O1 u: I) ^. J+ _4 q4 s- g" v% v2 L
    public static double mul(double d1,double d2){ $ ]2 s6 j+ n# t+ G
            BigDecimal bd1 = new BigDecimal(Double.toString(d1));
    + U/ s7 ]9 H: F: L$ I2 S8 l        BigDecimal bd2 = new BigDecimal(Double.toString(d2)); % u' o* p+ R4 \0 z
            return bd1.multiply(bd2).doubleValue();
    , z4 u% y5 y' O' y' X, y    }
    回复 支持 反对

    使用道具 举报

  • 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

    主题

    3204

    帖子

    6759

    积分

    普通会员

    Rank: 2

    积分
    6759
    发表于 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-19 14:30 , Processed in 0.251275 second(s), 37 queries .

    Powered by Javazx

    Copyright © 2012-2022, Javazx Cloud.

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