java自学网VIP

Java自学网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5332|回复: 5

字符类型转换精度问题

[复制链接]

该用户从未签到

1

主题

3

帖子

15

积分

普通会员

Rank: 2

积分
15
发表于 2014-11-27 15:14:02 | 显示全部楼层 |阅读模式
本帖最后由 善解人衣 于 2014-11-27 15:17 编辑 7 c& j0 k2 ^, V7 p  Y# @
, f! F1 K* D2 R4 J$ x3 L
如下, T6 c7 w2 a# ]5 J0 X
public static void main(String[] args) {
0 V  m* W0 S3 {: C        double a= Double.parseDouble("19.9");
7 ]) M/ L1 `+ |6 {: e        String d = String.valueOf(a* 100);
, A/ X: c2 f. e3 s7 `- i        Double dd = Double.parseDouble(d);% I/ b3 W/ e, B& d$ y# e
        int i=dd.intValue();
+ i* M7 @2 t. b; w, M        System.out.println(i);, K6 w; a6 e$ Q% r4 o4 V5 @) J
    }- Z" j' x) x& p& y6 K
; Y4 n/ S$ m1 Z: Q- H* F1 U

% D: l4 J  }4 O( }0 U7 t结果是:1989. I, m( O6 i0 Z0 s: a; J5 W
为什么,哪里转换出了问题。
. K9 ~' f+ m3 Z0 F3 b2 b/ T0 X2 y! y7 C3 Y7 w
回复

使用道具 举报

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

    [LV.Master]出神入化

    2093

    主题

    3751

    帖子

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    66773

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

    发表于 2014-11-27 15:40:14 | 显示全部楼层
    java中double的运算都要转化为bigdecimal来计算,否则容易产生精度问题。
      f! |% f( z1 I: B$ @具体调整:
    0 h6 N+ J. ]" Z" k; R! Z/ U" W将:String d = String.valueOf(a* 100);  改为1 ]- `9 }! t4 k1 l. p9 z
    String d = String.valueOf(mul(a,100));  I7 Z# K& ?2 k0 A: F0 I
    ' _9 t4 C4 Z+ [
    增加方法:
    + O- u- ]" l: A' \- ]7 Ipublic static double mul(double d1,double d2){
    0 z$ \6 W. D, o& X& E        BigDecimal bd1 = new BigDecimal(Double.toString(d1)); / P5 @' m# n; B$ v3 d8 d
            BigDecimal bd2 = new BigDecimal(Double.toString(d2));
    % E5 w; u% x8 j/ G        return bd1.multiply(bd2).doubleValue(); 5 c8 F: T) \; P9 v% b
        }
    回复 支持 反对

    使用道具 举报

  • 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

    主题

    4596

    帖子

    9543

    积分

    普通会员

    Rank: 2

    积分
    9543
    发表于 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-29 12:08 , Processed in 0.438635 second(s), 36 queries .

    Powered by Javazx

    Copyright © 2012-2022, Javazx Cloud.

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