首先,示例jsp中的整数录入、保存
     <input class="form-control" id="unit" name="unit" placeholder="份数"
        type="text"
        οnkeypress="if(!this.value.match(/^[\+\-]?\d*?$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[\+\-]?\d+)?$/))this.o_value=this.value"
        οnkeyup="if(!this.value.match(/^[\+\-]?\d*?$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[\+\-]?\d+)?$/))this.o_value=this.value"
        οnblur="if(isNaN(value))this.value='';else this.value=value.replace(/\b(0+)/gi,'')"/>
其次,示例:jsp中保存四位小数(做到四舍五入)
<input class="form-control" id="firstPrem" name="firstPrem" placeholder="首期总保费"      data-rule-required='true' type="text"  value="${tblOrder.firstPrem }"    
οnkeypress="if(!this.value.match(/^[\+\-]?\d*?\.?\d*?$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/))this.o_value=this.value"   
οnkeyup="if(!this.value.match(/^[\+\-]?\d*?\.?\d*?$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/))this.o_value=this.value"
//方案一:如果不考虑数据长度,还可以用(整数超过11位就不行了,此时小数只有第一位有值)
  οnblur="if(isNaN(value))this.value='';else if(this.value!=''){if((Math.floor((parseFloat(value).toFixed(4))*10000)-(Math.floor(value*10000))==0) && (Math.round((value*100000)%10)==5)) value=Math.floor(value*10000+1)/10000; else value=parseFloat(value).toFixed(4);}
//方案二:无视有限数据长度,转为字符串进行分类归纳
οnblur="if(isNaN(value))this.value='';
      else if(this.value!=''){
       if(this.value.indexOf('.')==-1)value=value+'.00000';
       var str_before = value.split('.')[0];
       if(str_before=='')str_before=0;
       str_before = Math.round(str_before);
       var str_after = value.split('.')[1]+'00000';
       if(str_after=='')str_after='00000';
       str2 = str_after.charAt(4);
       if(str2>4 && str_after.slice(0,4)<9999)
       this.value=(str_before+'.'+(Math.round(str_after.slice(0,4))+1));
       if(str2>4 && str_after.slice(0,4)==9999)
       this.value=((Math.round(str_before)+1)+'.0000');
       if(str2<5)
       this.value=(str_before+'.'+str_after.slice(0,4));
       if(this.value.split('.')[0].length>11){
       layer.msg('长度超过数据存储上限!');
       this.value='';
       }
      } "
οnblur="if(isNaN(value))this.value='';       else if(this.value!='' &&  value.split('.')[0].length>11){        layer.msg('长度超过数据存储上限!');        this.value='';       }       else if(this.value!=''){        var str_before = value.split('.')[0];        if(str_before=='')str_before=0;        var str_after = value.split('.')[1]+'00000';        if(str_after=='')str_after='00000';        str2 = str_after.charAt(4);        if(str2>4 && str_after.slice(0,4)<9999)        this.value=(str_before+'.'+(Math.round(str_after.slice(0,4))+1));        if(str2>4 && str_after.slice(0,4)==9999)        this.value=((Math.round(str_before)+1)+'.0000');        if(str2<5)        this.value=(str_before+'.'+str_after.slice(0,4));       } "      />

1)数据进来,首先确保是数字,如果因为输入法等原因进来的不是数字,则需要通过 onblur进行校验,如果不是数字,清空 2)toFixed是个好方法,可以进行数据的小数位数控制,但并不是单纯的截取(toFixed之后的数据减去一个同长度的值就可以看的出来) 3)toFixed对于尾数是5的处理无法精准处理,需要特殊加工,进行场景分类归纳处理
js
中的数据类型及其转换

Js中的数据类型

Js中的数据类型一共有六种,即number,string,boolean,underfine,null,object。

一,number

Number数据类型指的是数字,可以为整型,也可以是浮点数。如

var a=12,b=12.5;

二,string

字符串由零个或多个字符构成,字符包括字母,数字,标点符号和空格;需要注意的是

字符串必须放在引号里(单引号或双引号);

var bob=”man”;

alert(“bob”);

alert(bob);

浏览器首先会弹出包含有“bob”的字符串,然后弹出包含有“man”的字符串,前者是直接弹出字符串,后者则是弹出变量的值。

三,boolean

布尔型数据只能有两种值 true 和 false,在js中true和false是关键字。通常,我们设置布尔值时多用于条件的判断。如:

var flag=true;

if(flag){

//js 代码

}

在条件判断语句中我们将所有的判断条件看做一个布尔值(这里需要了解一些布尔值的转换特性)。

四,underfine

underfine通常指的是没有赋值的变量,通过typeof可以对数据的类型进行判断。如

var a,b=underfine;

alert(a);

alert(typeof a);

两次结果都为underfine。

五,null

null是一个只有一个值的特殊类型。表示一个空对象引用。如:

var a=null;

将a清空。

六,object

对象就是由一些彼此相关的属性和方法集合在一起而构成的一个数据实体。常见的对象有array,window,document等。

例:

var today = new Date();

var year = today.getFullYear();

var month = today.getMonth() + 1;

var day = today.getDay();

通过创建对象实例就可以调用对象的方法了,如上就是创建了一个Date的对象实例today,today通过调用Date的方法得出了现在的年月日等信息。

数组array是作为经常使用的对象,是由多个 (键-值) 所组成的一个多容器。其索引 默认是从0开始的。创建数组有两种方法:1创建数组对象实例 var arr=newArray(1,2,3);2直接使用面向字面量 var a=[1,2,3];

<script  type="text/javascript">

var date=new Date();

var day=date.getDay();

var weekly=["星期天","星期一","星期二","星期三","星期四","星期五","星期六"]

document.write("today  is "+weekly[day]+"<br>");

</script>

结果将输出今天是礼拜几。

数据类型的查看与转换

在js中我们经常需要知道某些变量的数据类型,并将其转换为我们所需要的数据类型。

通常,我们判断变量的数据类型会用到标识符typeof,如:

var mood = "happy";

alert(typeof  mood);

alert(typeof  95);

通过标识符,我们可以很快获取数据的类型;

数据的转换中,我们经常用到的是将变量转换成字符串或数字。

转换成字符串要使用toString(),例

var married = false;

alert(married.toString());

转换成数字时,有两种方法,parseInt() 转换成整数,parseFloat()转换成浮点数。

例:

var test = parseInt(“blue”); //returns NaN

var test = parseInt(“1234blue”); //returns  1234

var test = parseInt(“22.5”); //returns 22

var test = parseFloat(“1234blue”); //returns  1234

var test = parseFloat(“22.5”); //returns 22.5

转载于:https://www.cnblogs.com/hanwuxing/p/8037617.html

js中的数据转换、整数、小数保存、四舍五入相关推荐

  1. JS中bignumber处理高精度小数运算的使用

    JS中bignumber处理高精度小数运算的使用 安装或引用 bignumber.js的API地址: 静态方法 实例方法 项目开发中发现精度丢失的问题,如0.1+0.2 = 0.30000000000 ...

  2. js中同时得到整数商及余数_js取整数、取余数的方法

    1 1.丢弃小数部分,保留整数部分parseInt(5/2)2.向上取整,有小数就整数部分加1 Math.ceil(5/2)3,四舍五入.Math.round(5/2)4,向下取整 Math.floo ...

  3. js中同时得到整数商及余数_js和vue实现时分秒倒计时的方法

    我们平常浏览网页的时候,经常见到"距游戏公测1天2小时3分钟4秒"这样的倒计时器.像切图网qietu.com经常就遇到要做倒计时的效果,干脆记录下来,免得重复造轮子. 下面两个 d ...

  4. js中同时得到整数商及余数_苏教版小学数学二年级下册1.1有余数的除法讲解

    | 政策 • 信息 • 知识 • 方法 • 生活 • 教师 • 学生 • 家长 | 点击题目下方蓝字一键关注 江苏微教育 知识点总结 1.有余数的除法的意义 在平均分一些物体时,有时会有剩余. 2.余 ...

  5. java中保留两位小数(四舍五入后)

    我认为最简单的: import java.text.DecimalFormat; public class format { double d= 111231.5585; System.out.pri ...

  6. JS中的基本和引用类型传递的比较

    <!DOCTYPE html> <html><head><meta charset="UTF-8"><title>< ...

  7. 在js中对数值进行取整、四舍五入等方法汇总

    在Js中,对数值进行操作的场景有: 向上取整: ceil 向下取整: floor 四舍五入: round 固定精度:  toFixed 固定长度 :  toPrecision 取整:    parse ...

  8. oracle 判断数字是否为整数,怎么判断JS中一个数字是否为整数?

    怎么判断JS中一个数字是否为整数? 面试的时候遇到的问题,然后小疯回去查就几种方法,姑且一看,请多指正. 方法一: var ss =$("#ss").val(); var sss ...

  9. JS 中的Math方法向上取整、向下取整、保留整数、绝对值、取最大值、最小值等

    JS 中的Math方法向上取整.向下取整.保留整数.绝对值.取最大值.最小值等 1.只保留整数部分(丢弃小数部分) parseInt(5.1234);// 5 2.向下取整(<= 该数值的最大整 ...

  10. JS中格式化数据保留两位小数

    问题:在JS中格式化数据保留两位小数的函数的多种方法 最好方法: 保留两位好像是这样吧     var   a   =   9.39393;     alert(a.toFixed(2)); 说明: ...

最新文章

  1. OpenCV 【十五】绘直线/椭圆/矩形/圆及其填充
  2. zcmu1156(树状数组)
  3. hyperion高光谱参数_收藏!光纤光谱仪在激光领域的典型应用
  4. linux远程升级运行程序,运用RedHat的Kickstart升级Linux系统方法
  5. Spring系列(六) Spring Web MVC 应用构建分析
  6. 回调函数这个是什么鬼?
  7. IBM发布32纳米芯片技术 明年下半年量产
  8. PCA-SIFT原理及源码解析
  9. 基于SpringBoot,来实现MySQL读写分离技术
  10. RPC Demo(二) 基于 Zookeeper 的服务发现
  11. mysql存储过程类_mysql存储过程类
  12. 总结一下最近面试经常被问到的问题(2019年4月)
  13. python初学者怎么入门-python初学者怎么入门
  14. jasoncpp读取jason数据如何判断某一字段是否存在
  15. HTML5 Canvas 车架号第十位是L,汽车生产日期字母对照
  16. 五分钟教你快速制作 macOS Mojave U盘启动盘
  17. 自写日历(周日历,农历节日节气)
  18. 9种退出极域课堂的方法
  19. 老生常谈!数据库如何存储时间?你真的知道吗?
  20. VMware 16 Pro安装MacOS Mojava 10.14

热门文章

  1. 【渝粤教育】国家开放大学2018年春季 7392-21FMatlab语言及其应用 参考试题
  2. 【钢铁缺陷检测算法】数据探索
  3. 【RLchina第六讲】Imitation Learning
  4. 推荐系统000111
  5. pycharm的todo和fixme标记,标志为今后再做和bug点
  6. Instruments工具的使用
  7. [转]VS2008 集成openCV过程
  8. Day13 - Ruby比一比: instance_eval 和 class_eval方法
  9. RESTFULL 01 规范
  10. 项目: 基于Python socket模块实现的简单 ftp 项目: