Author: toad
Date: 2006-12-09 21:39:49 +0000 (Sat, 09 Dec 2006)
New Revision: 11327
Modified:
trunk/freenet/src/freenet/support/Fields.java
Log:
Parse multiplier as a long if we can.
Modified: trunk/freenet/src/freenet/support/Fields.java
===================================================================
--- trunk/freenet/src/freenet/support/Fields.java 2006-12-09 21:39:28 UTC
(rev 11326)
+++ trunk/freenet/src/freenet/support/Fields.java 2006-12-09 21:39:49 UTC
(rev 11327)
@@ -597,7 +597,7 @@
1000 * 1000,
1 << 20,
1000l * 1000l * 1000l,
- 1 << 30,
+ 1l << 30,
1000l * 1000l * 1000l * 1000l,
1l << 40,
1000l * 1000l * 1000l * 1000l * 1000,
@@ -609,7 +609,14 @@
x--;
res *= l[idx];
}
- res *= Double.parseDouble(s.substring(0, x + 1));
+ String multiplier = s.substring(0, x + 1);
+ if(multiplier.indexOf('.') > -1 ||
multiplier.indexOf('E') > -1) {
+ res *= Double.parseDouble(multiplier);
+ if(Logger.shouldLog(Logger.MINOR,
Fields.class)) Logger.minor(Fields.class, "Parsed "+multiplier+" of "+s+" as
double: "+res);
+ } else {
+ res *= Long.parseLong(multiplier);
+ if(Logger.shouldLog(Logger.MINOR,
Fields.class)) Logger.minor(Fields.class, "Parsed "+multiplier+" of "+s+" as
long: "+res);
+ }
} catch (ArithmeticException e) {
res = Long.MAX_VALUE;
throw new NumberFormatException(e.getMessage());