我正在尝试编写一个scala程序来生成一个输出文件omega0_Real.txt
,其中包含从0到pi / 2弧度范围内输入的预计算余弦函数值。这些计算值中的每一个都是72位长并以十六进制格式存储。我到目前为止编写的代码如下:
import java.io._
import scala.math._
object omega0_Real {
def main (args: Array[String]) {
val arg = (0.0).to(2-pow(2, -10), pow(2, -10))
val cosArg = arg.map (i => cos(i))
val cosBit = cosArg.map (i => List.tabulate(72)(j = (BigDecimal((i*pow(2,j))).toBigInt % 2)))
val cosStr = cosBit.map (i => i mkString)
val cosBig = cosStr.map (i => BigInt(i, 2))
val cosBigStr = cosBig.map (i => i.toString(16))
val cosList = cosBigStr.toList
val file = "omega0_Real.txt"
val writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file)))
for (x <- cosList) {
writer.write(x + "\n")
}
writer.close()
}
给出了错误:java.lang.NumberFormatException: Illegal embedded sign character
后跟许多其他错误。请帮我调试一下这段代码。
PS:我在sbt控制台上逐行运行此代码,但它没有给出任何错误,尽管生成的值是错误的。