javascript四舍五入的问题
求 555.555的四舍五入保留两位小数
使用Math.round 怎么都算不对,结果都是555.55 ,貌似是因为java计算浮点数时会莫名其妙在结尾跟上一串数字 比如555.55500000003
无奈只能写这个方法
function round(a,b){
var s=a.toString().indexOf(".");
a0=a.toString().substr(0,s+b+1);
a1=Math.round(a.toString().substr(s+b+1,1)*0.1)*Math.pow(10,-b);
return(a0*1+a1);
}
function fix(v,n){
var s =''+v;
var flag=false;
if(s.substring(0,1)=='0'){
s='1'+s;
flag=true;
alert(1);
}
var i =(s).indexOf('.');
if (s.length-i-1>n){
s=s.substring(0,s.length-(s.length-i-2-n));
var j =''+ Math.floor((s.replace('.','')/10+0.5));
j=j.substring(0,i)+'.'+j.substring(i,j.length);
if(flag){
return j.substring(1,j.length);
}else{
return j;
}
}else{
return s;
}
}
基本上可以用=.=
相关文档:
1. 应用 Array.prototype.join实现字符合并
方法1.
String.prototype.times = function(n) {
return Array.prototype.join.call({length:n+1}, this);
};
"js".times(5) // => "jsjsjsjsjs"
方法2.
var ArrayTest=new Array("HE","LL","O");
var hello = Array.prot ......
在开发一个缴费交易时,先发送查询请求到系统A,系统A返回一个字符串格式的欠费金额,因为是定长的,所以都是前补0,本来需要先做处理的,但是由于查询结果如果是欠费的,客户发起缴费交易时,会送给系统B的格式,与系统A返回的是一样的,因此就原样保存然后上送,可是在系统测试时,却发现了一个奇怪的现象,系统A返回的查 ......
原文:《Speeding up JavaScript: Working with the DOM》
作者: KeeKim Heng, Google Web Developer
在我们开发互联网富应用(RIA)时,我们经常写一些javascript脚本来修改或者增加页面元素,这些工作最终是DOM——或者说文档对象模型——来完成的,而我们的实现方式会影响到应用的响应速度。
DO ......
1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键
<table border oncontextmenu=return(false)><td>no</table> 可用于Table
2. <body onselectstart="return false"> 取消选取、防止复制
3. onpaste="return false" 不准粘贴
4. oncopy="return false;" oncut="return f ......
最近在CSDN上有人问,怎么用JS循环26个英文字母,想都没想,写下以下代码
<script type="text/javascript">
<!--
var character = new Array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","X","Y","Z");
for(var i=0;i<25;i++)
{
alert(character[i]);
}
......