< 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 >