string类型保留两位小数_js保留4位小数

string类型保留两位小数_js保留4位小数一Math.round(),Math.ceil(),Math.floor()的区别Math.round():根据“round”的字面意思“附近、周围”,可以猜测该函数是求一个附近的整数小数点后第一位<5正数:Math.round(11.46)=11负数:Math.round(-11.46)=-11小数点后第一位>5正数:Math.round(11.68)=12负数:Math.rou…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

一 Math.round(),Math.ceil(),Math.floor()的区别

Math.round():根据“round”的字面意思“附近、周围”,可以猜测该函数是求一个附近的整数

小数点后第一位<5

正数:Math.round(11.46)=11

负数:Math.round(-11.46)=-11

小数点后第一位>5

正数:Math.round(11.68)=12

负数:Math.round(-11.68)=-12

小数点后第一位=5

正数:Math.round(11.5)=12

负数:Math.round(-11.5)=-11

总结:(小数点后第一位)大于五全部加,等于五正数加,小于五全不加

Math.ceil():根据“ceil”的字面意思“天花板”去理解;

Math.ceil(11.46)=Math.ceil(11.68)=Math.ceil(11.5)=12

Math.ceil(-11.46)=Math.ceil(-11.68)=Math.ceil(-11.5)=-11

总结:只要后边有小数都是向上取整

Math.floor():根据“floor”的字面意思“地板”去理解;

Math.floor(11.46)=Math.floor(11.68)=Math.floor(11.5)=11

Math.floor(-11.46)=Math.floor(-11.68)=Math.floor(-11.5)=-12

总结:只要是有小数,都是向下取证;

二 js保留两位小数总结

1四舍五入型的

var num =2.446242342;

//toFixed(要保留的小数点后边的位数)

num = num.toFixed(2); // 输出结果为 2.45 返回的值是一个字符串类型

2 不四舍五入型的

第一种,先把小数变整数:

Math.floor(15.7784514000 * 100) / 100 // 输出结果为 15.77

返回的是一个数字类型

第二种,当作字符串,使用正则匹配:

Number(15.7784514000.toString().match(/^\d+(?:\.\d{0,2})?/))

// 输出结果为 15.77,不能用于整数如 10 必须写为10.0000

返回的是一个数字类型

注意:如果是负数,请先转换为正数再计算,最后转回负数

三 Js取float型小数点后两位数的方法

1 处理会四舍五入

var num =2.446242342;

num = num.toFixed(2); // 输出结果为 2.45

//toFixed(要保留的小数点后边的位数)

此处的toFixed()函数取到的值是一个string类型,而不是一个number类型;

处理不会四舍五入

1 先把小数变整数

Math.floor(15.7784514000 * 100) / 100 // 输出结果为 15.77

此处的取到的值是一个number类型;

2当做字符串,使用正则匹配

Number(15.7784514000.toString().match(/^\d+(?:\.\d{0,2})?/))

// 输出结果为 15.77,不能用于整数如 10 必须写为10.0000

此处取到的值是一个number类型

注意:如果是负数,请先转为整数再计算,最后在转回负数;

保留两位小数

1功能:将浮点数四舍五入,取小数点后2位

var num =2.446242342;

function toDecimal(x) {

var f = parseFloat(x);

if (isNaN(f)) {

return;

}

f = Math.round(x*100)/100;

return f;

}

toDecimal(num)//调用方法

var nums=toDecimal(num) //调用函数方法后,他不会改变原来那个变量所拥有的值,而是从新

替换成一个新值;

console.log(typeof(nums));

此处获取到的值是一个number类型

2制保留2位小数,如:2,会在2后面补上00.即2.00

//强制保留两位小数

function toDecimal2(x) {

var f = parseFloat(x);

if (isNaN(f)) {

return false;

}

var f = Math.round(x*100)/100;

var s = f.toString();

var rs = s.indexOf(‘.’);

if (rs < 0) {

rs = s.length;

s += ‘.’;

}

while (s.length <= rs + 2) {

s += ‘0’;

}

return s;

}

此处获取到的是一个string类型的值;

3 可选择要保留几位小数的方法

var num=2.446242342;

function fomatFloat(src,pos){ //src是要保留小数的值,pos是要保留几位小数;

return Math.round(src*Math.pow(10, pos))/Math.pow(10, pos);

}

var nums=fomatFloat(num,3)

console.log(nums);

console.log(typeof(nums));

此处获取到的是一个number类型的值;

4 精确到n位,不含n位

var num=2.446242342;

var nums=num.toPrecision(3);

console.log(nums);//2.45

console.log(typeof(nums));

此处获取到的是是一个String类型的值

5 只保留整数部分

var num=2.446242342;

var nums=parseInt(num);

console.log(nums);//2

console.log(typeof(nums));//number

6向上取整,有小数就整数部分加1

var num=2.446242342;

var nums=Math.ceil(num);

console.log(nums);//3

console.log(typeof(nums));//number

7四舍五入.

var num=2.446242342;

var nums=Math.round(num);

console.log(nums);//2

console.log(typeof(nums));//number

var num=2.6788667778;

var nums=Math.round(num);

console.log(nums);//3

console.log(typeof(nums));//number

8向下取整

var num=2.6788667778;

var nums=Math.floor(num)

console.log(nums);//2

console.log(typeof(nums));//number

9对于小数点位数大于2位的,用上面的函数没问题,但是如果小于2位的,比如:changeTwoDecimal(3.1)

,将返回3.1,如果你一定需要3.10这样的格式,那么需要下面的这个函数:

var num=2.1;

function changeTwoDecimal_f(x) {

var f_x = parseFloat(x);

if (isNaN(f_x)) {

alert(‘function:changeTwoDecimal->parameter error’);

return false;

}

var f_x = Math.round(x * 100) / 100;

var s_x = f_x.toString();

var pos_decimal = s_x.indexOf(‘.’);

if (pos_decimal < 0) {

pos_decimal = s_x.length;

s_x += ‘.’;

}

while (s_x.length <= pos_decimal + 2) {

s_x += ‘0’;

}

return s_x;

}

var nums=changeTwoDecimal_f(num);

console.log(nums);//2.10

console.log(typeof(nums));//string

功能:将浮点数四舍五入,取小数点后2位,如果不足2位则补0,

这个函数返回的是字符串的格式用法:

changeTwoDecimal_f(3.1415926)返回3.14

changeTwoDecimal_f(3.1)返回3.10

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/169367.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Mac 下 JAVA 环境变量的配置

    Mac 下 JAVA 环境变量的配置1.先点击划红线的这个【小火箭】2.打开你会看到有【其他】这一个栏目,点击打开。3.打开后,你会看到这个【终端】,然后点击4.会呈现出这样的界面当然你别管是什么,紧接着第5步。 5.输入这条命令行【/usr/libexec/java_home-V】查看默认的jdk下载地址注意:命令行终端是区分大小写的(-v是不对的,必须是大写-V)…

    2022年6月17日
    31
  • 数字信号处理频谱分析实验_声压频谱分析仪软件

    数字信号处理频谱分析实验_声压频谱分析仪软件从实验室到现场进行测量当今的无线信号环境比以往任何时候都要复杂。面对迅速的创新,新的无线信号标准以及不断增长的频率和带宽要求,研究人员必须找到新的方法来检测RF干扰,分类信号类型,测试传播模型并确保在各种环境中的覆盖范围。他们需要一种经济高效,通用且可联网的替代方案,以替代传统的基于硬件的频谱分析设备。为了在真实条件下进行实验并验证仿真或模型,这些频谱分析解决方案必须能够在实验室和现场中部署,并与通用实验室软件和处理工具集成在一起,以进行更深入的信号分析。应用与要求无线研究人员需要的解决方案是

    2022年8月11日
    8
  • a javascript error occurred in_in from of是什么意思

    a javascript error occurred in_in from of是什么意思ERRORinapp.bundle.jsfromUglifyJs问题ERRORinapp.bundle.jsfromUglifyJsUnexpectedtoken:name«element»,expected:punc«;»[app.bundle.js:106,8]在用webpack对代码打包的时候报错,在网上找到了类似的答案,还是没有解决我的问题.能解…

    2022年9月15日
    0
  • C#中使用SQLDMO的StoredProcedure对象(存储过程)创建数据表「建议收藏」

    C#中使用SQLDMO的StoredProcedure对象(存储过程)创建数据表「建议收藏」               …….               SQLDMO.StoredProcedurestrProc=newSQLDMO.StoredProcedure();               //Assignanametostoredprocedure               strProc.Name=”createCustomerT

    2022年7月26日
    6
  • hibernate 大对象类型hibernate制图

    hibernate 大对象类型hibernate制图

    2021年12月17日
    40
  • 普罗米修斯Prometheus监控神器

    普罗米修斯Prometheus监控神器文章目录一、普罗米修斯Prometheus安装配置1.1实验环境一、普罗米修斯Prometheus安装配置1.1实验环境在这里插入代码片

    2022年7月19日
    16

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号