处理 float() 函数
Processing float() function
首先,this function是特殊处理还是默认存在于java?
当我在处理下面这行代码时,
println(float("88") + "\t" + float("88\n") + "\t" + float("88p") ); // p is just an arbitrary character other than '\n'
输出
88.0 88.0 NaN
那么,为什么 float() 函数对 '\n' 字符可以正常工作,但对 'p' 不起作用?他们不都是角色吗?我知道 '\n' 很特别,但在这种情况下它有什么不同吗?
编辑:我已经用 'p' 替换了 'K' 因为答案中有一些警告。
据推测,它将 \n
视为 "meaningless filler"(即可以安全地剥离)。
此外,在这种情况下,k
不是 只是一个任意字符。例如,88k 可以解释为 88,000(这并不是一种不常见的用法)。或者,也许这根本不是您的意思,k 只是一个拼写错误 - 无论哪种方式,框架都不知道,所以您实际上是在要求它在这里读懂您的想法。
再举一个例子,考虑float("12abf456x")
这样的情况。框架应该用这个做什么?完全不清楚您如何合理地将其解释为任何确定的数字。
Processing 中存在特定的 float 函数
在 java 中有 Float.parseFloat(s: String): float
。当传递无法识别为正确浮点数的字符串时,此函数应产生 NumberFormatExceptions。
\n 通常被视为空白或空格。字符串在解析之前通常会被修剪(也就是说,从所述字符串的开头和结尾删除空格和字符,如 \r 和 \n)。 K 字符未被删除,因此 float() 产生 NaN(在 Java 中你会得到一个 NumberFormatException)
只存在于加工中。如果您想在 Java 中使用类似的功能,可以使用 Float#parseFloat(String)
我假设它适用于 \n
,因为那是一个换行符,它是空白。 float
可能会在解析值之前修剪空格。 K
不是空白字符也不是数字,因此无法解析为浮点数。
首先,this function是特殊处理还是默认存在于java?
当我在处理下面这行代码时,
println(float("88") + "\t" + float("88\n") + "\t" + float("88p") ); // p is just an arbitrary character other than '\n'
输出
88.0 88.0 NaN
那么,为什么 float() 函数对 '\n' 字符可以正常工作,但对 'p' 不起作用?他们不都是角色吗?我知道 '\n' 很特别,但在这种情况下它有什么不同吗?
编辑:我已经用 'p' 替换了 'K' 因为答案中有一些警告。
据推测,它将 \n
视为 "meaningless filler"(即可以安全地剥离)。
此外,在这种情况下,k
不是 只是一个任意字符。例如,88k 可以解释为 88,000(这并不是一种不常见的用法)。或者,也许这根本不是您的意思,k 只是一个拼写错误 - 无论哪种方式,框架都不知道,所以您实际上是在要求它在这里读懂您的想法。
再举一个例子,考虑float("12abf456x")
这样的情况。框架应该用这个做什么?完全不清楚您如何合理地将其解释为任何确定的数字。
Processing 中存在特定的 float 函数
在 java 中有 Float.parseFloat(s: String): float
。当传递无法识别为正确浮点数的字符串时,此函数应产生 NumberFormatExceptions。
\n 通常被视为空白或空格。字符串在解析之前通常会被修剪(也就是说,从所述字符串的开头和结尾删除空格和字符,如 \r 和 \n)。 K 字符未被删除,因此 float() 产生 NaN(在 Java 中你会得到一个 NumberFormatException)
只存在于加工中。如果您想在 Java 中使用类似的功能,可以使用 Float#parseFloat(String)
我假设它适用于 \n
,因为那是一个换行符,它是空白。 float
可能会在解析值之前修剪空格。 K
不是空白字符也不是数字,因此无法解析为浮点数。