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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • windows10开启telnet命令_windows10 telnet

    windows10开启telnet命令_windows10 telnetWindows10操作系统上使用telnet命令大概分为以下两部分:第一部分:配置telnet第二部分:进入黑窗口最后,来一个调试,尝试连接服务器。(正文开始)第一部分:首先,通过控制面板进行配置telnet打开:控制面板——程序——启动或关闭windows功能——勾上telnetclient如图所示:第二部分:键盘按键操作:window+r——输入cmd回车——进入原始黑窗口——输入telnet回车——输入quit退出telnet模式调试部分:网络上的方法:

    2022年9月23日
    2
  • javalist集合转换数组_集合对象转数组

    javalist集合转换数组_集合对象转数组问题描述:对于给定的如下数组,如何转换成List集合?String[]array={"a","b","c"};参考stackoverflow总结如下几种写法:1.使用原生方式,拆分数组,添加到ListList&lt;String&gt;resultList=newArrayList&lt;&gt;(array.length);for(Strings:ar…

    2022年8月23日
    7
  • 时序数据库Machbase「建议收藏」

    时序数据库Machbase「建议收藏」Background最近偶然接触到Machbase,发现相关信息很少,于是自己做了一些简单的了解,这里记录下,方便有兴趣的童靴参考哈。1、官方介绍Machbase是韩国的一家公司开发的一款类似InfluxDB、DolphinDB、TDengine等时序数据库产品,不开源,不过单机fog版可以免费试用,具体可以参考官方网站:https://www.machbase.com/product/edge;但是国外的网站访问不便,这里给个下载的链接,想试用的可以下载:下载链接:https://pan.

    2022年10月4日
    2
  • 如何恢复电脑共享文件(windows7错误恢复进不去)

    第一步:检查AutoShareServer和AutoShareWks注册表值,以确保未将它们设置为0。依次点击“开始→运行”,输入regedit,然后按回车键进入注册表编辑器。      第二步:找到并单击HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServerParameters。   第三步:如

    2022年4月10日
    329
  • nested exception is java.lang.NoClassDefFoundError: org/codehaus/jettison/json/JSONObject异常的解决办法

    nested exception is java.lang.NoClassDefFoundError: org/codehaus/jettison/json/JSONObject异常的解决办法nestedexceptionisjava.lang.NoClassDefFoundError:org/codehaus/jettison/json/JSONObject异常的解决办法

    2025年5月26日
    2
  • 引起cpu流水线阻塞的三个原因

    引起cpu流水线阻塞的三个原因1、多个任务在同一时间周期内争用同一个流水段(资源冲突)例如,假如在指令流水线中,如果数据和指令是放在同一个储存器中,并且访问接口也只有一个,那么,两条指令就会争用储存器;在一些算数流水线中,有些运算会同时访问一个运算部件。2、数据依赖(数据相关)比如,A运算必须得到B运算的结果,但是,B运算还没有开始,A运算动作就必须等待,直到A运算完成,两次运算不能同时执行。3、 条件转移的影响(条件转移)如…

    2022年8月20日
    13

发表回复

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

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