java自学网VIP

Java自学网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4665|回复: 5

字符类型转换精度问题

[复制链接]

该用户从未签到

1

主题

3

帖子

15

积分

普通会员

Rank: 2

积分
15
发表于 2014-11-27 15:14:02 | 显示全部楼层 |阅读模式
本帖最后由 善解人衣 于 2014-11-27 15:17 编辑
4 J$ d, p- }' o1 j! U9 g0 e& S5 W, p% [: S6 y7 v4 L& g
如下
! ^# P3 \7 q! E6 r3 _- C$ k* hpublic static void main(String[] args) {7 ?8 E/ E: L7 x. M4 P. _6 z
        double a= Double.parseDouble("19.9");
( X7 m' s, o. C6 ~- S  |/ M        String d = String.valueOf(a* 100);
: ^0 G! t3 f& b+ O0 v4 |! O) d        Double dd = Double.parseDouble(d);/ l( z+ \1 P/ h+ R+ p" a, E/ D
        int i=dd.intValue();- ^9 R& C4 m7 n' H% j
        System.out.println(i);5 t3 {( q- ^3 F1 n; s7 n; t
    }
! e- k+ l! f8 D4 R* b# x2 a0 @
' V# w* _4 z: g+ P1 F$ |$ v; x% X$ |% _0 e
结果是:19894 m0 u  w5 _' v  u/ a
为什么,哪里转换出了问题。
1 `! s. l6 [9 N, d) H* P  C6 e
- p8 ]% J' t+ d* ?. P* Z
回复

使用道具 举报

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

    [LV.Master]出神入化

    2025

    主题

    3683

    帖子

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    66319

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

    发表于 2014-11-27 15:40:14 | 显示全部楼层
    java中double的运算都要转化为bigdecimal来计算,否则容易产生精度问题。- q& ^# s7 e! r1 Y
    具体调整:7 ?: s) ^1 S3 `6 F9 p1 [3 p
    将:String d = String.valueOf(a* 100);  改为
      g2 q  y( {" A- m; ~: RString d = String.valueOf(mul(a,100));1 M; Q; J! {5 G5 o/ s% a# q' J, z
    : i( n+ u: D2 Z8 ~8 d% Y
    增加方法:
      C5 z9 T& R$ n6 ]" A3 V) W+ k3 jpublic static double mul(double d1,double d2){ 9 [$ I3 m, Z0 z7 [% n, o9 w( C( o
            BigDecimal bd1 = new BigDecimal(Double.toString(d1)); . x9 `2 C/ {3 Y$ i7 d+ w/ S  x; x/ c
            BigDecimal bd2 = new BigDecimal(Double.toString(d2)); ) T5 G! ?0 ?% x
            return bd1.multiply(bd2).doubleValue();
    4 d* {! s  _. H, d! G* U1 w    }
    回复 支持 反对

    使用道具 举报

  • 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

    主题

    3930

    帖子

    8211

    积分

    普通会员

    Rank: 2

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

    使用道具 举报

    该用户从未签到

    0

    主题

    81

    帖子

    176

    积分

    普通会员

    Rank: 2

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

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-10-18 14:43 , Processed in 0.200840 second(s), 33 queries .

    Powered by Javazx

    Copyright © 2012-2022, Javazx Cloud.

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