Sorry, but the code have the same problem like I described before.

For the better understanding I explain it in other words. If one use `formatter: "number"` for example then the function `$.fn.fmatter` will be called in [the line](https://github.com/tonytomov/jqGrid/blob/v4.7.0/js/grid.base.js#L1143) line of code during creating the cell value of the corresponding column. The parameter `formatType` of the function `$.fn.fmatter` (see [here](https://github.com/tonytomov/jqGrid/blob/v4.7.0/js/jquery.fmatter.js#L50-L59)) will be initialized to `"number"`. The parameter `opts` will be extended (see [the line](https://github.com/tonytomov/jqGrid/blob/v4.7.0/js/jquery.fmatter.js#L53)) with `$.jgrid.formatter` defined typically in the language file (see [the lines](https://github.com/tonytomov/jqGrid/blob/v4.7.0/js/i18n/grid.locale-en.js#L96-L175)). After that the function `$.fn.fmatter[formatType]` (see [the line](https://github.com/tonytomov/jqGrid/blob/v4.7.0/js/jquery.fmatter.js#L56)) which will be `$.fn.fmatter["number"]` (or `$.fn.fmatter.number`) will be called. So `$.fn.fmatter.number` will be called and the `opts.number` (see [the line](https://github.com/tonytomov/jqGrid/blob/v4.7.0/js/jquery.fmatter.js#L175)) will contains all properties of `$.jgrid.formatter.number` defined in `grid.locale-en.js` [here](https://github.com/tonytomov/jqGrid/blob/v4.7.0/js/i18n/grid.locale-en.js#L98) or in `grid.locale-de.js` [here](https://github.com/tonytomov/jqGrid/blob/v4.7.0/js/i18n/grid.locale-de.js#L108). So in case of empty string as the value, which need be formatted, the value `op.defaultValue` (see [the line](https://github.com/tonytomov/jqGrid/blob/v4.7.0/js/jquery.fmatter.js#L180)) will be used which come from the corresponding language file and which will be `0.00` (en) or `0,00` (de). The code which is published now or the previous one will format empty string `""` as `0` (using `defaultValue` of `formatter: "integer"`) instead  of `0.00` or `0,00`.

In other words one needs to move the line `op = op || $.extend({}, opts.integer);` from `$.fn.fmatter.numberHelper` to `$.fn.fmatter.integer`. Moreover I don't see why `numberHelper` function need be a property of `$.fn.fmatter`. The current implementation allows to use `formatter: "numberHelper"`. It seems to me that it would be better to define **local** function with `var numberHelper = function(cellval, opts, op){...};` instead of assigning it as a member of `$.fn.fmatter`.

Best regards
Oleg