当前位置:  技术问答>java相关

关于NaN?

    来源: 互联网  发布时间:2017-03-22

    本文导语:  class A{ public static void main(String [] args) {      float ff;      ff=(int)java.lang.Math.sqrt(-11.0);      System.out.prinln(ff); } } sqrt(-11),为何编译、运行均无错误?且输出0? | 如果参数是负数,则...

class A{
public static void main(String [] args)
{
     float ff;
     ff=(int)java.lang.Math.sqrt(-11.0);
     System.out.prinln(ff);
}
}

sqrt(-11),为何编译、运行均无错误?且输出0?

|
如果参数是负数,则返回一个NaN(Not a Number)。
NaN的类型是double,显示转换为int,损失些精度,再赋给float,编译和运行当然没问题。
至于解释为什么是0 ……你首先得知道-11.0的二进制表示(IEEE-754),然
后当参数传递给java.lang.Double.longBitsToDouble(long bits),计算结果
再转换为int,然后再转换为float。 浮点数的表示很烦……不记得

|
Some methods in java.lang.Math will not throw an Exception ,like
Math.sqrt(): If the argument is NaN or less than zero, the result is NaN.
If you want to pass SCJP with a high score ,you'd better remember 
the methods that throw certain Excepion.
And a double number will be casted into an unkown int sometimes.

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.lang类double的类成员方法: nan定义及介绍
  • Float.NaN 和Double.NaN指的是什么,有什么作用?
  • java命名空间java.lang类float的类成员方法: nan定义及介绍
  • 请问Float.NaN什么意思?拿来干什么用?麻烦举个例子说明
  • 如何在linux c下判断nan?是不是要增加特别的编译选项?
  • 我在linux下面使用printf("%f", x)怎么输出nan呢?
  • JS中判断null、undefined与NaN的方法


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3