JS 控制小数位数的实现代码
昨天在用JS对前台浮点数进行合算时发现:
0.05+1.08=1.1300000000000001
上网查一查的确存在这种Bug,除了位数上控制之外也没什么也好的方法(希望高手能提出
其它思路)。
于是自己编写一个控制小数位数的JS方法,解决开发燃眉之急
代码如下:
//小数位数控制,可以四舍五入
function Fractional(n) {
//小数保留位数
var bit = 2;
//加上小数点后要扩充1位
bit++;
//数字转为字符串
n = n.toString();
//获取小数点位置
var point = n.indexOf('.');
//n的长度大于保留位数长度
if (n.length > point + bit) {
//保留小数后一位是否大于4,大于4进位
if (parseInt(n.substring(point + bit, point + bit + 1)) > 4) {
return n.substring(0, point) + "." + (parseInt(n.substring(point + 1, point + bit)) + 1);
}
else {
return n.substring(0, point) + n.substring(point, point + bit);
}
}
return n;
}
相关推荐
-
javascript避免数字计算精度误差的方法详解
如果我问你 0.1 + 0.2 等于几?你可能会送我一个白眼,0.1 + 0.2 = 0.3 啊,那还用问吗?连幼儿园的小朋友都会回答这么小儿科的问题了.但是你知道吗,同样的问题放在编程语言中,或许就不是想象中那么简单的事儿了.不信?我们先来看一段 JS. var numA = 0.1; var numB = 0.2; alert( (numA + numB) === 0.3 ); 执行结果是 false.没错,当我第一次看到这段代码时,我也理所当然地以为它是 true,但是执行结果让我大跌眼镜
-
用js格式化金额可设置保留的小数位数
复制代码 代码如下: //金额的格式化s为要格式化的参数(浮点型),n为小数点后保留的位数 function formatMoney(s,n){ n = n>0 && n<=20 ? n : 2; s = parseFloat((s+"").replace(/[^\d\.-]/g,"")).toFixed(n)+""; var l = s.split(".")[0].split("&quo
-
java小数位的例子
方式一:四舍五入double f = 111231.5585;四舍五入 保留两位小数,可以用String的format函数,方法如下: 复制代码 代码如下: System.out.println(String.format("%.2f", x1));System.out.println(String.format("%.2f", x2)); DecimalFormat转换最简便 复制代码 代码如下: public void m2() { De
-
js计算精度问题小结
复制代码 代码如下: //问题比如:7*0.8 JavaScript算出来就是:5.6000000000000005 //加法函数,用来得到精确的加法结果 //说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显.这个函数返回较为精确的加法结果. //调用:accAdd(arg1,arg2) //返回值:arg1加上arg2的精确结果 function accAdd(arg1, ar
-
PHP四舍五入精确小数位及取整
进一法取整.四舍五入取整.忽略小数等的取整数方法大全 PHP取整数函数常用的四种方法,下面收集了四个函数:经常用到取整的函数,今天小小的总结一下!其实很简单,就是几个函数而已--主要是:ceil,floor,round,intval PHP取整数函数常用的四种方法,下面收集了四个函数:经常用到取整的函数,今天小小的总结一下!其实很简单,就是几个函数而已--主要是:ceil,floor,round,intval 一.ceil - 进一法取整 说明float ceil ( float value )
-
java精度计算代码 java指定精确小数位
本文实例为大家分享了java指定精确小数位的具体代码,供大家参考,具体内容如下 java代码: public class App2 { public static void main(String[] args) { String val = checkNumber("10.1234155", 2, 6).toString(); System.out.println(val); } public static BigDecimal checkNumber(String number,
-
C# double和decimal数据类型以截断的方式保留指定的小数位数
项目中要用到以截断的方式取小数点后两位,故写了以下方法: 复制代码 代码如下: /// <summary> /// 将小数值按指定的小数位数截断 /// </summary> /// <param name="d">要截断的小数</param> /// <param name="s">小数位数,s大于等于0,小于等于28</param> /// <returns></retur
-
关于数据库中保留小数位的问题
在数据库中有时我们可能需要对一些数据进行处理,例如四舍五入.直接舍去后面的几位等,其实很简单,都是有现成的函数,我们只需要套用就行了:select round(10.98*10)/10 from dual;--四舍五入select ceil(10.63*10)/10 from dual;--取上限值select floor(10.68*10)/10 from dual;--取下限值
-
python通过floor函数舍弃小数位的方法
本文实例讲述了python通过floor函数舍弃小数位的方法.分享给大家供大家参考.具体分析如下: python中可以通过math库的floor函数来舍弃浮点数后面的小数位 import math print(math.floor( x )) 例如:x=1.2,返回1.0 其返回值为浮点数,如果希望返回整数,可以写成: import math #from jb51.net print(int(math.floor( x ))) 输出结果:1 希望本文所述对大家的Python程序设计有所帮助.
-
C# 小数位数保留的方法集锦
1.System.Globalization.NumberFormatInfo provider = new System.Globalization.NumberFormatInfo(); provider.NumberDecimalDigits =intDecLength; //要设定的小数位数 double strCashAmt=Convert.ToDouble(this.txtCashAmt.Text); //先把控件內的值转成double this.txtCashAmt.Text =
随机推荐
- virtualbox win7 iis 由于扩展配置问题而无法提供您请求的页面
- MyBatis自动生成Where语句
- 读取XML并绑定至RadioButtonList实现思路及演示动画
- ajax分页效果(bootstrap模态框)
- 简单谈谈php中的unicode和utf8编码
- 10个可以简化php开发过程的MySQL工具
- PHP中,文件上传
- 使用ob系列函数实现PHP网站页面静态化
- C#中DateTime日期类型格式化显示方法汇总
- Android中控件GridView实现设置行列分割线的方法示例
- Android实现自定义圆角对话框Dialog的示例代码
- android指定DatePickerDialog样式并不显示年的实现代码
- Python中几种操作字符串的方法的介绍
- jquery利用json实现页面之间传值的实例解析
- JavaScript文本框脚本编写的注意事项
- C语言新建临时文件和临时文件名的方法
- IIS 多站点 用户隔离视频教程
- SQLSERVER全文目录全文索引的使用方法和区别讲解
- C语言格式化输入输出函数详解
- Android通过手机拍照或从本地相册选取图片设置头像