那些被漏掉的JQuery总结(三)——关于前台的数据计算问题

来源:互联网 发布:淘宝卖家怎么评差评 编辑:程序博客网 时间:2024/05/27 20:51

   前段时间,由于项目比较着急上线。在实现一个计算功能的时候,我偷了点懒,选择了后台进行计算。感觉实现起来更简单,毕竟前台代码写的不是很多。随着时间的推移,后台处理数据出现了很多问题,一番重构后,计算和数据的处理都挪到了前台。过程很痛苦,很多细节让人抓狂,这就是实习的魅力!所有的经历都是慢慢的成长!这里拿出来和大家一起分享一下。

一、数据类型问题

   1、使用正确的数据类型:

     因为我们要进行数值计算,所以这里要使用数值类型,也就是Number类型。(相对应的还有NaN类型即not a number 。这个数值用于表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)。例如,在其他编程语言中,任何数值除以0都会导致错误,从而停止代码执行。但在JavaScript中,任何数值除以0会返回NaN,因此不会影响其他代码的执行。

  NaN本身有两个非同寻常的特点。首先,任何涉及NaN的操作(例如NaN/10)都会返回NaN,这个特点在多步计算中有可能导致问题。其次,NaN与任何值都不相等,包括NaN本身

)。PS:如果你要比较两个数值的大小,最好使用数值类型来进行计算和比较。


   2、强制类型转换:

      有3个函数可以把非数值转换为数值:Number()、parseInt()和parseFloat()

二、如何四舍五入?

    使用 toFixed函数。

三、千分位处理问题(显示、去除)

  显示:(s是你要处理的数值对象,必须为数值类型)

<span style="font-family:KaiTi_GB2312;font-size:18px;">     </span><pre name="code" class="javascript"><span style="font-family:KaiTi_GB2312;font-size:18px;">function(s){     var l = s.split(".")[0].split("").reverse(), r = s.split(".")[1];     t = "";     for (i = 0; i < l.length; i++) {          t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : "");     }     return t.split("").reverse().join("") + "." + r;}</span>

 去除千分位的显示

<span style="font-family:KaiTi_GB2312;font-size:18px;">function(value){     var noThousands = Number(0);     noThousands = value.replace(/,/g, '')     return noThousands ;}</span>


四、输入的过滤(正则表达式):限制只能输入数字和小数点

   replace(/[^\d\.-]/g, "")

五、小结:

如果要将以上的代码整合到一起的话,其实也简单。给出一个自己在项目中应用的实例,希望对大家能有借鉴作用。

function <span style="font-family:KaiTi_GB2312;">ParseToThousands</span>(s, n) {//<param>s</param>资金<param>n</param>小数点后保留位数如果是非零值或"",则返回"0.00"</summary>      if (isNaN(s) || s == "") return "0.00";      n = n > 0 && n <= 20 ? n : 2;      s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";      var l = s.split(".")[0].split("").reverse(), r = s.split(".")[1];      t = "";      for (i = 0; i < l.length; i++) {         t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : "");      }      return t.split("").reverse().join("") + "." + r; }

总结:

    心态积极向上,找准定位,享受好自己的每一天,经营并总结好每一天。快乐做好自己,甚好!在大公司工作或者实习,我能学到什么不一样的东西。咱们都需要一些时间来独立思考和总结,而不是焦虑和紧张。让我们忘掉进度的烦恼吧,因为那是咱们早晚都要学的东西。也请不要再和其他人做什么对比了,不要给自己辣么大压力。只要自己每天都在进步就好。和自己比,是不是今天比昨天做的好辣么一点。这就是一件很幸福的事情。


推荐文章:关于js的数据类型操作

http://blog.csdn.net/z363115269/article/details/9122731

0 0
原创粉丝点击