< prev index next >
src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeNumber.java
Print this page
@@ -47,10 +47,11 @@
import jdk.nashorn.internal.objects.annotations.Where;
import jdk.nashorn.internal.runtime.JSType;
import jdk.nashorn.internal.runtime.PropertyMap;
import jdk.nashorn.internal.runtime.ScriptObject;
import jdk.nashorn.internal.runtime.ScriptRuntime;
+import jdk.nashorn.internal.runtime.doubleconv.DoubleConversion;
import jdk.nashorn.internal.runtime.linker.PrimitiveLookup;
/**
* ECMA 15.7 Number Objects.
*
@@ -182,17 +183,11 @@
if (Math.abs(x) >= 1e21) {
return JSType.toString(x);
}
- final NumberFormat format = NumberFormat.getNumberInstance(Locale.US);
- format.setMinimumFractionDigits(fractionDigits);
- format.setMaximumFractionDigits(fractionDigits);
- format.setGroupingUsed(false);
- format.setRoundingMode(RoundingMode.HALF_UP);
-
- return format.format(x);
+ return DoubleConversion.toFixed(x, fractionDigits);
}
/**
* ECMA 15.7.4.6 Number.prototype.toExponential (fractionDigits)
*
@@ -265,11 +260,11 @@
// workaround for http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6469160
if (x == 0.0 && p <= 1) {
return "0";
}
- return fixExponent(String.format(Locale.US, "%." + p + "g", x), false);
+ return DoubleConversion.toPrecision(x, p);
}
/**
* ECMA 15.7.4.2 Number.prototype.toString ( [ radix ] )
*
< prev index next >