萍聚社区-德国热线-德国实用信息网

 找回密码
 注册

微信登录

微信扫一扫,快速登录

萍聚头条

查看: 552|回复: 0

1-1-12-12 帮忙看段程序,谢了!

[复制链接]
发表于 2003-2-7 01:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册 微信登录

x
发信人: javarookie (JavaRookie), 信区: Java      
标  题: Re: 帮忙看段程序,谢了!
发信站: BBS 水木清华站 (Fri Nov 15 20:20:32 2002), 转信


【 在 classky (弧度) 的大作中提到: 】
: class Second extends First {
:    public static void main(String args[]) {
:    methodA((byte)2,1.0);
:    }
:   static short methodA(byte x, double y){
:   return (short)x/y*2;
            ~~~~~~~~~~~得到的是一个double 值,返回给 short 值时将损失精度
Java 的整数数值运算以 int 为基础
浮点数运算以 double 为基础,换句话说如果运算式中没有显式的cast,
那么加减乘除都是以基础类型进行运算
比如:
byte a = 1;
byte b = 2;
byte c = a + b; // 编译错误
最后的加法中将 a 和 b 转换为 int 计算,所以返回的是 int ,需要显式的声明才
能够返回 byte 值,即:
byte c = (byte)(a+b);

在原例中,(short)x / y * 2 因为其中 y 是 double 型,所以计算以 double 为基
础进行,得到结果是一个 double 型的数值
注意:(short)(x/y*2) 与上式不同,返回一个 short 型(括号的作用)

:   }
:   }
: 提示有精度损失错误,为什么??
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
您需要登录后才可以回帖 登录 | 注册 微信登录

本版积分规则

手机版|Archiver|AGB|Impressum|Datenschutzerklärung|萍聚社区-德国热线-德国实用信息网 |网站地图

GMT+2, 2024-5-22 00:00 , Processed in 0.261062 second(s), 19 queries , MemCached On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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