我有一个解析器类,它使用Apache POI来解析Excel文件。
当一个单元格包含1.0
时,我想将其转换为字符串"1"
。
当我得到1.1
时,我想将其解析为"1.1"
怎么做?
我尝试了一些没有成功的实验:
try
doubleValue.toInt
catch
{
case _ => doubleValue.toString
}
或者使用Integer.parseInt()
方法。
答案 0 :(得分:4)
如果可能,以下代码会返回Int
,否则返回Double
if (doubleValue.isValidInt)
doubleValue.toInt
else
doubleValue
您必须注意两者之间的公共类型是AnyVal
,有时您应该明确声明它以避免编译器自动将Int
结果重新转换为Double
。< / p>
P.S。如果结果必须是String
,您可以将上述代码打包到方法中,并在结果上调用toString
。