首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Scala2.11.2在科学表示法中给我提供浮点数的编译错误?

为什么Scala2.11.2在科学表示法中给我提供浮点数的编译错误?
EN

Stack Overflow用户
提问于 2014-09-12 10:26:42
回答 1查看 333关注 0票数 10

我最近更新了一个Scala项目,从2.10更新到2.11.2。

关于下列代码:

代码语言:javascript
复制
 if( x < 1.e-150 ) // conditional ops... 

我搞错了

E不是国际贸易组织的成员

以前的科学观念运作得很好。我怀疑这不是一件2.11的事情,但更可能是升级的一些奇怪之处,这在很大程度上只是更新sbt文件的一个例子:

代码语言:javascript
复制
scalaVersion := "2.11.2"

以前是这样的:

代码语言:javascript
复制
scalaVersion := "2.10.3"

我想不出是什么导致了这一切。我只知道它在2.10以下就能正常工作。

以前有没有人见过这个问题,或者可以提出解决办法?(或者是新的调查线!)

我正在使用JDK 1.7.0_21和sbt.version=0.13.5

任何帮助或想法都值得赞赏。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-12 10:40:29

科学表示法的语法是Scala,它是一个浮点数,后面跟着e (或E)和指数。您所看到的问题是,什么是浮点数,与科学表示法的语法没有任何关系(尽管这确实导致了错误消息的混淆)。

您可以通过打开-deprecation的2.10.4 REPL来确认这一点:

代码语言:javascript
复制
scala> val x = 1.
<console>:1: warning: This lexical syntax is deprecated.  From scala 2.11, a dot
         will only be considered part of a number if it is immediately followed
         by a digit.
       val x = 1.
               ^

可以肯定的是,在2.11中,这根本无法编译。

您可以通过编写1e-1501.0e-150来完成完全相同的任务,两者都将在2.10或2.11中工作。

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25806159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档