社区
JavaScript
帖子详情
两个文本框数值做乘除,为什么有时会出现计算结果位数过多现象?立即给分!
sisicat
2003-07-21 02:34:27
如:
两个文本框中的数据做如下计算:
parseFloat((parseFloat(document.form.text1.value) * parseFloat(document.form.text2.value))/100);
有时候就会出现结果是小数位很长的数,如
70.0555*7=490.38849999999996
但是很显然不应是这个结果,请问是什么问题,如何解决?
...全文
53
6
打赏
收藏
两个文本框数值做乘除,为什么有时会出现计算结果位数过多现象?立即给分!
如: 两个文本框中的数据做如下计算: parseFloat((parseFloat(document.form.text1.value) * parseFloat(document.form.text2.value))/100); 有时候就会出现结果是小数位很长的数,如 70.0555*7=490.38849999999996 但是很显然不应是这个结果,请问是什么问题,如何解决?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhangking
2003-07-21
打赏
举报
回复
混帐! 不是js做浮点运算不够精确, 是电脑本身就不精确!!!
sisicat
2003-07-21
打赏
举报
回复
同意wsj(骆驼)的说法,关键是js做浮点运算不够精确。谢谢各位的指教。
zhangking
2003-07-21
打赏
举报
回复
你不是学计算机出身的吧?
数值在计算机的机内表示, 并不象你用笔在纸上记数! 所以就会产生误差!
所以,判断 2 个数是否相等, 真正的判断应当是:
if (a-b)<0.0000001 then ……
因为2个相等的数,在计算机里可能因为误差,被计算机认为不相等。
这样,你该明白相除的结果,有好多位小数的原因了吧?
wsj
2003-07-21
打赏
举报
回复
JS做浮点运算不精确
可以先变为整数相乘后,再除以移位数
function multi(p1,p2){
var t1=0,t2=0,r1,r2;
try{t1=p1.toString().split(".")[1].length}catch(e){}
try{t2=p2.toString().split(".")[1].length}catch(e){}
with(Math){
r1=p1*pow(10,t1)
r2=p2*pow(10,t2)
return ((r1*r2)/pow(10,t2+t1));
}
}
alert(multi(70.0555, 7));
fason
2003-07-21
打赏
举报
回复
ie的bug
<script>
function Number.prototype.Fixed(num){
with(Math){
var m=pow(10,Number(num))
return round(this*m)/m;
}
}
alert(c(56.10,23.12).Fixed(2));
function c(n1,n2){
var m=0,s1=n1.toString(),s2=n2.toString();
m=s1.split(".")[1].length
m=s2.split(".")[1].length
return (n1-n2).Fixed(m)//高版本可以用(n1-n2).toFixed(m)
}
</script>
seabell
2003-07-21
打赏
举报
回复
<input id=text1 value=70.0555>
<input id=text2 value=7>
<script>
alert(parseInt(parseFloat(parseFloat(document.all.text1.value)*parseFloat(document.all.text2.value))*100)/100);
</script>
android-计算器实现两
位数
的加减
乘除
运算
注:以下计算器只注重实现功能,不考虑其他BUG,只有两位整数的算法运算,适合新手1、实现思想将从键盘得到的
数值
放在一个字符数组中,以运算符号(+-/)为
分
割点,将
两个
数值
分
割开,进行算法运算。*2、难点如何判断是否为符号?+ - ×/ 记录符号的位置?3、步骤:1、得到键盘输入的值 2、将值存放在一个字符数组中 3、遍历数组中的每个数,如果找到算法符号,记录下算法符号的位置。(要点,从0开始)
数值
类型
乘除
的优化位运算原理
数值
类型
乘除
的优化和位运算原理(自己的理解) 位运算原理
数值
类型
乘除
的优化java中运算符的优先级 位运算原理 java中的位运算符 &:按位与。 |:按位或。 ~:按位非。 ^:按位异或。 <<:左位移运算符。 >>:右位移运算符。 <<<:无符号右移运算符。 位运算符中,除~以外 ,其余均为二元运算符。 操作数只能为整型和字...
计算机中的位运算和
数值
乘除
关系
计算机中的位运算和
数值
乘除
关系 计算机中数据的存储方式,是以二进制的方式进行存储。位运算的左移和右移一般代表数的
乘除
,但不同的数据
乘除
方式所获得的结果,不尽相同。一般位移时,空的位置以0作为补充。 关于计算机中数据的存储方式在这里不
做
说明,这里只说明数据的换算关系: 位运算左移<< 属于乘法关系 无论是奇数还是偶数,位运算左移时(<<),均代表当前
数值
乘以2的几次方,而这个几次方和移动的
位数
是相同的。简单举个例子,如果定义一个数5,那么在计算机中进行左移1位时,得到的数就是10,左
js
数值
相加的精度问题解决
解决
数值
相加导致的精度问题,屡试不爽哦
数理统计(
数值
修约、0.5修约、0.2修约、有效数字运算、平均值、中
位数
、极差、标准差、变异系数)
一、
数值
修约: 口诀:四舍六入五考虑,五后非零则进一,五后皆零看奇偶,奇进偶舍不连续。 1.15保留一位小数:1.15=1.2(五后非零 看五前面是奇数还是偶数,1是奇数,所以进1位=1.2) 1.1501保留一位小数:1.1501=1.2(五后01非零,所以进一位=1.2) 1.123保留一位小数:1.123=1.1(四舍六入,所以不进,直接舍弃=1.1) 二、0.5修约:
数值
乘以2,修约,修约值除以2。 21.639进行0.5修约,修约“个”
位数
=60.25*2=120.5,120.5=12
JavaScript
87,988
社区成员
224,683
社区内容
发帖
与我相关
我的任务
JavaScript
Web 开发 JavaScript
复制链接
扫一扫
分享
社区描述
Web 开发 JavaScript
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章