String avgPageLoadTimeStr = row.get("avg_page_load_time");
Long avgPageLoadTime = Long.parseLong(avgPageLoadTimeStr);
avgPageLoadTimeStr = 52747.50;
如何avgPageLoadTimeStr
转换为Long
?
String avgPageLoadTimeStr = row.get("avg_page_load_time");
Long avgPageLoadTime = Long.parseLong(avgPageLoadTimeStr);
avgPageLoadTimeStr = 52747.50;
如何avgPageLoadTimeStr
转换为Long
?
52747.50
是一个浮点数。所以,你应该首先将其解析到一个浮点数,然后舍入为long值:
String avgPageLoadTimeStr = row.get("avg_page_load_time");
double d = Double.parseDouble(avgPageLoadTimeStr);
long avgPageLoadTime = Math.round(d);
根据你的需要,你也可以将它取整为长值之前使用Math.floor()
或Math.ceil()
。
请注意,'Math.floor'和'Math.ceil'返回一个'double'。 –
谢谢,你说得对。我把最后一句话改了一点;-) – micha
+1对OP的说明,你想要一个“长”而不是“长”。在这种情况下,只需投射就足够了'long avgPageLoadTime =(long)Double.parseDouble(avgPageLoadTimeStr);' –
您将得到一个NumberFormatException
,因为“52747.50”是一个浮点数。
因此,您可以使用Double
来解析它并获得long
值。
String avgPageLoadTimeStr = "52747.50";
Double doubleObj = new Double(avgPageLoadTimeStr);
long longValue = doubleObj.longValue();
System.out.println(longValue);
或者干脆
long longValue = (long) Double.parseDouble(avgPageLoadTimeStr);
您不需要创建一个新的Double对象来解析为double。 –
@PeterLawrey是的,你是对的。这就是为什么我说“或干脆...”:) :) –
+1清晨对我来说太早了。 –
发生了什么事,当您使用的Long.parseLong() – SpringLearner
可以使用'数学。#圆钢(双)',到双圆为长。请注意,您将丢失信息。 –
什么是时间单位? –