如何根据值解析scala中的Int或Double?

时间:2013-07-08 08:12:55

标签: scala

我有一个解析器类,它使用Apache POI来解析Excel文件。

当一个单元格包含1.0时,我想将其转换为字符串"1"。 当我得到1.1时,我想将其解析为"1.1"

怎么做?

我尝试了一些没有成功的实验:

try
  doubleValue.toInt
catch
{
  case _ => doubleValue.toString
}

或者使用Integer.parseInt()方法。

1 个答案:

答案 0 :(得分:4)

如果可能,以下代码会返回Int,否则返回Double

if (doubleValue.isValidInt)
  doubleValue.toInt
else
  doubleValue

您必须注意两者之间的公共类型是AnyVal,有时您应该明确声明它以避免编译器自动将Int结果重新转换为Double。< / p>

P.S。如果结果必须是String,您可以将上述代码打包到方法中,并在结果上调用toString