微信小程序数据转换就是JS方法转换:
1.字符串转float int
parseFloat("字符串内容"); //将字符串值转成浮点数
parseInt("字符串内容"); //将字符串值转成整数
此外 parseFloat()
(1) 如果字符串0位置的值不是数字 ,会返回 NAN
(2) 如果有两个小数点,则返回第二个小数点前的数字
(3) 如果字符串中有不是数字的值,会返回字符串不是数字的前面的值
(4)不能解析 别的进制的值
parseFloat("sss"); //returns NaN
parseFloat("11.11.11"); //returns 11.11
parseFloat("1111sss111"); //returns 1111
parseFloat("AF"); //returns NaN
parseFloat("11.11"); //returns 11.11
parseFloat("011.11"); //returns 11.11
对于parseInt()
(1) 如果字符串0位置的值不是数字 ,会返回 NAN
(2) 如果有小数点,则返回小数点前的数字,小数点是无效字符
(3) 如果字符串中有不是数字的值,会返回字符串不是数字的前面的值
(4)解析 别的进制的值 需要传值两个参数
parseInt("sss"); //returns NaN
parseInt("11.11.11"); //returns 11
parseInt("1111sss111"); //returns 1111
//以防以0开头的数字被默认为8进制(测试没有问题)最好加上10
parseInt("011"); //returns 11
parseInt("011",10); //returns 11
//解析别的进制值
parseInt("0x321"); //returns 801 因为0x默认为16进制
parseInt("AB"); //returns NaN
parseInt("AB",16); //returns 171
parseInt("AB", 11); //returns 10
parseInt("2",2); //returns NaN 因为2对于2进制数是不合法的
parseInt("10", 2); //returns 2
parseInt("10", 8); //returns 8
parseInt("10", 10); //returns 10
parseInt("10", 16); //returns 16
parseInt("a", 16); //returns 10
2.强制类型转换
String(value); //把给定的值转换成字符串
Boolean(value); //把给定的值转换成Boolean型;
Number(value); //把给定的值转换成数字(可以是整数或浮点数);
对于String()
(1)传递的值都会变为字符串 类似于toString()方法 但是和它又不同 对null或undefined值 ,toString()会报错
String(new Object()); //returns [object Object]
String(110); //returns 110
String(null); //returns null
null.toString(); //报错 TypeError: Cannot read property 'toString' of null
对于Boolean()
(1)给定的值为 空字符串、数字0、undefined或null 返回false
(2)给定的值 长度大于0的字符串、第一个数字非0数字、对象 返回true
Boolean(""); //returns false
Boolean(0); //returns false
Boolean(undefined); //returns false
Boolean(null); //returns false
Boolean(011); //报错 unknown: Invalid number
Boolean(110); //returns true
Boolean(new Object()); //returns true
Boolean("sssss"); //returns true
对于Number()
(1)转换的是整个给定的值,给定的值有不合法字符 则返回NaN (与parseInt()和parseFloat()方法有区别)
(2)不能识别别的进制
Number(011); //报错 unknown: Invalid number
Number("011"); //returns 11
Number(0); //returns 0
Number("11.11"); //returns 11.11
Number("11.11.11"); //returns NaN
Number("11"); //returns 11
Number("11ss"); //returns NaN
Number(null); //returns 0
Number(new Object()); //returns NaN
Number(undefined); //returns NaN
Number(false); //returns 0
Number(true); //returns 1
Number("A", 16); //returns NaN
3.保留几位小数点:四舍五入
NumberObject.toFixed(位数);//
对于.toFixed()
(1)参数为保留的小数点后位数
(2)返回的值为String 类型
13.37.toFixed(4); //returns 13.3700
13.toFixed(4); // 报错 unknown: Identifier directly after number
Number(13).toFixed(0); //returns 13
13.378888.toFixed(2); //returns 13.38
13.378888.toFixed(2)+3; //returns 13.383
4.获取几位数 :四舍五入 toPrecision()
对于.toPrecision()
(1)参数为保留的位数
(2)返回的值为String 类型
(3)对象的值超出指定位数时将其转换为指数计数法。
Number(135).toPrecision(1); //returns 1e+2
Number(135.77).toPrecision(); //returns 135.77
13.37.toPrecision(2); //returns 13
3.1415.toPrecision(4); //returns 3.142
3.1415.toPrecision(8); //returns 3.1415000