Changeset 21792 in legacy


Ignore:
Timestamp:
Apr 10, 2010 5:07:12 AM (7 years ago)
Author:
peller
Message:

Allow decimal places when parsing numbers type=percent. Fixes #10701, Refs #10582

Location:
dojo/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • dojo/trunk/number.js

    r21732 r21792  
    327327                        var parts = format.split('.');
    328328                        var places = options.places;
    329                         if(parts.length == 1 || places === 0){flags.fractional = false;}
    330                         else{
    331                                 if(places === undefined){ places = options.pattern ? parts[1].lastIndexOf('0')+1 : Infinity; }
     329
     330                        // special condition for percent (factor != 1)
     331                        // allow decimal places even if not specified in pattern
     332                        if((parts.length == 1 && factor == 1) || places === 0){
     333                                flags.fractional = false;
     334                        }else{
     335                                if(places === undefined){ places = options.pattern ? parts[1].lastIndexOf('0') + 1 : Infinity; }
    332336                                if(places && options.fractional == undefined){flags.fractional = true;} // required fractional, unless otherwise specified
    333337                                if(!options.places && (places < parts[1].length)){ places += "," + parts[1].length; }
     
    335339                        }
    336340                        var groups = parts[0].split(',');
    337                         if(groups.length>1){
     341                        if(groups.length > 1){
    338342                                flags.groupSize = groups.pop().length;
    339                                 if(groups.length>1){
     343                                if(groups.length > 1){
    340344                                        flags.groupSize2 = groups.pop().length;
    341345                                }
  • dojo/trunk/tests/number.js

    r17221 r21792  
    360360
    361361//      t.t(dojo.number.parse("9.1093826E-31"));
     362        t.is(1.23, dojo.number.parse("123%", {places:0, locale: "en-us", type: "percent"}));
     363        t.t(isNaN(dojo.number.parse("123.46%", {places:0, locale: "en-us", type: "percent"})));
     364        t.is(1.2346, dojo.number.parse("123.46%", {places:2, locale: "en-us", type: "percent"}));
    362365        t.is(0.501, dojo.number.parse("50.1%", {pattern: "#0.#%", locale: 'en-us'}));
    363366
Note: See TracChangeset for help on using the changeset viewer.