java中nan什么情况会出现?nan是什么意思
其实java中nan什么情况会出现的问题并不复杂,但是又很多的朋友都不太了解nan是什么意思,因此呢,今天小编就来为大家分享java中nan什么情况会出现的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
数据中出现nan是什么意思
数据中出现nan是下载环境不佳或下载软件资源不稳定的意思。NaN表示无限。
NaN是英文"Not a Number"的缩写,表示不是一个数字。在计算机科学中,NaN是一种特殊的数值类型,用于表示无效或未定义的数值结果。当进行数值计算时,如果出现了无法确定或无法表示的结果,就会返回NaN。
例如,当进行非数值运算(如将字符串与数字相加)或进行无效的数学运算(如对负数进行平方根)时,就会得到NaN。
nan是什么意思
NaN意思是非数。
NaN(NotaNumber,非数)是计算机科学中数值数据类型的一类值,表示未定义或不可表示的值。常在浮点数运算中使用,是以浮点数表示实数时的特殊值。首次引入NaN的是1985年的IEEE 754浮点数标准。
返回NaN的运算有如下三种:
1、至少有一个参数是NaN的运算。
2、不定式:
(1)下列除法运算:0/0、∞/∞、∞/−∞、−∞/∞、−∞/−∞。
(2)下列乘法运算:0×∞、0×−∞。
(3)下列加法运算:∞+(−∞)、(−∞)+∞。
(4)下列减法运算:∞-∞、(−∞)-(−∞)。
3、产生复数结果的实数运算。如:对负数进行开偶次方的运算。
* 最新 java中的Scanner问题
1.类型。一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。
2.nextBigDecimal();nextBigInteger();nextBigInteger(int radix);nextBoolean();nextByte();nextByte(int radix);nextDouble();nextFloat();nextInt();nextInt(int radix);nextLine();nextLong();nextLong(int radix);nextShort();nextShort(int radix);
3.参见java api。或者反编译Scanner类。
public final class Scannerextends Objectimplements Iterator<String>一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。
Scanner使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配。然后可以使用不同的 next方法将得到的标记转换为不同类型的值。
例如,以下代码使用户能够从 System.in中读取一个数:
Scanner sc= new Scanner(System.in);
int i= sc.nextInt();
再看一个例子,以下代码使 long类型可以通过 myNumbers文件中的项分配:
Scanner sc= new Scanner(new File("myNumbers"));
while(sc.hasNextLong()){
long aLong= sc.nextLong();
}扫描器还可以使用不同于空白的分隔符。下面是从一个字符串读取若干项的例子:
String input="1 fish 2 fish red fish blue fish";
Scanner s= new Scanner(input).useDelimiter("\\s*fish\\s*");
System.out.println(s.nextInt());
System.out.println(s.nextInt());
System.out.println(s.next());
System.out.println(s.next());
s.close();输出为:
1
2
red
blue以下代码使用正则表达式同时解析所有的 4个标记,并可以产生与上例相同的输出结果:
String input="1 fish 2 fish red fish blue fish";
Scanner s= new Scanner(input);
s.findInLine("(\\d+) fish(\\d+) fish(\\w+) fish(\\w+)");
MatchResult result= s.match();
for(int i=1; i<=result.groupCount(); i++)
System.out.println(result.group(i));
s.close();扫描器所使用的默认空白分隔符通过 Character.isWhitespace来识别。不管以前是否更改,reset()方法将把扫描器分隔符的值重置为默认空白分隔符。
扫描操作可能被阻塞,而等待信息的输入。
next()和 hasNext()方法及其基本类型 companion方法(如 nextInt()和 hasNextInt())首先跳过与分隔符模式匹配的输入,然后尝试返回下一个标记。在等待更多输入时 hasNext和 next方法都可能阻塞。hasNext方法是否阻塞与其相关的 next方法是否阻塞无关。
findInLine(java.lang.String)、findWithinHorizon(java.lang.String, int)和 skip(java.util.regex.Pattern)方法的执行与分隔符模式无关。这些方法会尝试匹配与输入中的分隔符无关的指定模式,因此可用于分隔符无关的特殊环境中。在等待更多输入时这些方法可能阻塞。
当某一扫描器抛出 InputMismatchException时,该扫描器不会传递导致该异常的标记,因此可以通过其他某种方法来获取或跳过它。
对于某些类型的分隔模式,可能返回空标记。例如,"\\s+"模式不会返回空标记,因为它与该分隔符的多个实例匹配。而分隔模式"\\s"可能返回空标记,因为它一次只传递一个空格。
扫描器可以从实现 Readable接口的任何对象读取文本。如果对底层 readable的 Readable.read(java.nio.CharBuffer)方法的调用抛出 IOException,则扫描器认为已经到达了输入的结尾。底层 readable最新抛出的 IOException可以通过 ioException()方法获取。
如果 Scanner关闭,且其输入源实现 Closeable接口,则该输入源也将关闭。
若没有外部同步,则 Scanner的多线程使用是不安全的。
除非另行说明,否则将一个 null参数传递到 Scanner的任何一个方法中都将抛出 NullPointerException。
默认情况下扫描器会将数字解释为十进制形式,除非已经使用 useRadix(int)方法设置了不同的基数。不管以前是否更改,reset()方法将把扫描器的基数重置为10。
本地化数字
此类的一个实例能够以标准格式以及扫描器语言环境的格式扫描数字。扫描器的初始语言环境是 Locale.getDefault()方法返回的值;它可以通过 useLocale(java.util.Locale)方法更改。不管以前是否更改,reset()方法将把扫描器的语言环境重置为初始语言环境。
本地化格式是根据以下参数定义的,对于某一特定语言环境来说,这些参数取自该语言环境的 DecimalFormat对象 df,及其 DecimalFormatSymbols对象 dfs。
LocalGroupSeparator用于分隔数千个组的字符,即 dfs.getGroupingSeparator()
LocalDecimalSeparator用于小数点的字符,即 dfs.getDecimalSeparator()
LocalPositivePrefix出现在正数前的字符串(可以为空),即 df.getPositivePrefix()
LocalPositiveSuffix出现在正数后的字符串(可以为空),即 df.getPositiveSuffix()
LocalNegativePrefix出现在负数前的字符串(可以为空),即 df.getNegativePrefix()
LocalNegativeSuffix出现在负数后的字符串(可以为空),即 df.getNegativeSuffix()
LocalNaN表示浮点值的非数字的字符串,即 dfs.getNaN()
LocalInfinity表示浮点值的无穷大的字符串,即 dfs.getInfinity()
数字语法
可通过此类的一个实例解析为数字的字符串是根据以下正则表达式语法指定的,在这种情况下 Rmax是正在使用的基数中的最高数字(例如,在基数 10中 Rmax为 9)。
NonASCIIDigit::=非 ASCII字符 c,对于它,Character.isDigit(c)返回 true
Non0Digit::= [1-Rmax]| NonASCIIDigit
Digit::= [0-Rmax]| NonASCIIDigit
GroupedNumeral::=( Non0Digit Digit? Digit?
( LocalGroupSeparator Digit Digit Digit)+)
Numeral::=(( Digit+)| GroupedNumeral)
Integer::=( [-+]?( Numeral))
| LocalPositivePrefix Numeral LocalPositiveSuffix
| LocalNegativePrefix Numeral LocalNegativeSuffix
DecimalNumeral::= Numeral
| Numeral LocalDecimalSeparator Digit*
| LocalDecimalSeparator Digit+
Exponent::=( [eE] [+-]? Digit+)
Decimal::=( [-+]? DecimalNumeral Exponent?)
| LocalPositivePrefix DecimalNumeral LocalPositiveSuffix Exponent?
| LocalNegativePrefix DecimalNumeral LocalNegativeSuffix Exponent?
HexFloat::= [-+]? 0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][-+]?[0-9]+)?
NonNumber::= NaN| LocalNan| Infinity| LocalInfinity
SignedNonNumber::=( [-+]? NonNumber)
| LocalPositivePrefix NonNumber LocalPositiveSuffix
| LocalNegativePrefix NonNumber LocalNegativeSuffix
Float::= Decimal
| HexFloat
| SignedNonNumber
上面正则表达式中的空白没有意义。
好了,关于java中nan什么情况会出现和nan是什么意思的问题到这里结束啦,希望可以解决您的问题哈!