js,jquery,php 对小数点的处理
js,jquery,php 对小数点的处理jquery
function regInput(obj, reg, inputStr)
{
var docSel = document.selection.createRange()
if (docSel.parentElement().tagName != "INPUT") return false
oSel = docSel.duplicate()
oSel.text = ""
var srcRange = obj.createTextRange()
oSel.setEndPoint("StartToStart", srcRange)
var str = oSel.text + inputStr + srcRange.text.substr(oSel.text.length)
return reg.test(str)
}
<INPUT style="WIDTH: 50px;IME-MODE:disabled" value=0 name=flightback min="0" max="99" onKeyPress = "return regInput(this,/^\d*\.?\d{0,2}$/,String.fromCharCode(event.keyCode))"> %
JS保留两位小数(非强制)
对于一些小数点后有多位的浮点数,我们可能只需要保留2位,但js没有提供这样直接的函数,所以我们得自己写函数实现这个功能,代码如下:
function changeTwoDecimal(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;
return f_x;
}
功能:将浮点数四舍五入,取小数点后2位
用法:changeTwoDecimal(3.1415926) 返回 3.14
changeTwoDecimal(3.1475926) 返回 3.15
js保留两位小数
realprice=price*discount/10;
$('#dish_realpri').attr("value",realprice.toFixed(2))
php保留两位小数
$yuanpri=$rows['dish_price']/$rows['dish_discount']*10; if (ceil($yuanpri) == $yuanpri) { echo $yuanpri; }else { echo floor($yuanpri*100)/100; }
或者用round: echo round(5.055, 2); // 5.06
JS判断只能是数字和小数点
1.文本框只能输入数字代码(小数点也不能输入)
<input onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')">
2.只能输入数字,能输小数点.
<input onkeyup="if(isNaN(value))execCommand('undo')" onafterpaste="if(isNaN(value))execCommand('undo')">
<input name=txt1 onchange="if(/\D/.test(this.value)){alert('只能输入数字');this.value='';}">
3.数字和小数点方法二
<input type=text tvalue="" ovalue="" onkeypress="if(!this.value.match(/^[\+\-]?\d*?\.?\d*?$/))this.value=this.t_value;else this.tvalue=this.value;if(this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/))this.ovalue=this.value" onkeyup="if(!this.value.match(/^[\+\-]?\d*?\.?\d*?$/))this.value=this.t_value;else this.tvalue=this.value;if(this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/))this.ovalue=this.value" >
4.只能输入字母和汉字
<input onkeyup="value=value.replace(/[\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[\d]/g,''))" maxlength=10 name="Numbers">
5.只能输入英文字母和数字,不能输入中文
<input onkeyup="value=value.replace(/[^\w\.\/]/ig,'')">
6.只能输入数字和英文<font color="Red">chun</font>
<input onKeyUp="value=value.replace(/[^\d|chun]/g,'')">
7.小数点后只能有最多两位(数字,中文都可输入),不能输入字母和运算符号:
<input onKeyPress="if((event.keyCode<48 || event.keyCode>57) && event.keyCode!=46 || /\.\d\d$/.test(value))event.returnValue=false">
8.小数点后只能有最多两位(数字,字母,中文都可输入),可以输入运算符号:
<input onkeyup="this.value=this.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')">
function returnFloat0(value) { //将小数点清零
value = Math.round(parseFloat(value));
return value;
}
function returnFloat1(value) { //保留一位小数点
value = Math.round(parseFloat(value) * 10) / 10;
if (value.toString().indexOf(".") < 0)
value = value.toString() + ".0";
return value;
}
function returnFloat(value){ //保留两位小数点
value = Math.round(parseFloat(value) * 100) / 100;
if (value.toString().indexOf(".") < 0) {
value = value.toString() + ".00";
}
return value;
}
function returnFloat2(value) { //保留两位小数点,一位小数自动补零
value = Math.round(parseFloat(value) * 100) / 100;
var xsd = value.toString().split(".");
//Ext.log(xsd.length);
if(xsd.length==1){
value = value.toString()+".00";
return value;
}
if(xsd.length>1){
if(xsd.length<2){
value = value.toString()+"0";
}
return value;
}
}
1。固定小数位数统一格式
在网上搜的一个例子,转载过来以备后用,valueString 是指要转换的值,nAfterDotNum 为小数位数
function FormatAfterDotNumber( ValueString, nAfterDotNum )
{
var ValueString,nAfterDotNum ;
var resultStr,nTen;
ValueString = ""+ValueString+"";
strLen = ValueString.length;
dotPos = ValueString.indexOf(".",0);
if (dotPos == -1)
{
resultStr = ValueString+".";
for (i=0;i<nAfterDotNum ;i++)
{
resultStr = resultStr+"0";
}
return resultStr;
}
else
{
if ((strLen - dotPos - 1) >= nAfterDotNum ){
nAfter = dotPos + nAfterDotNum + 1;
nTen =1;
for(j=0;j<nAfterDotNum ;j++){
nTen = nTen*10;
}
resultStr = Math.round(parseFloat(ValueString)*nTen)/nTen;
return resultStr;
}
else{
resultStr = ValueString;
for (i=0;i<(nAfterDotNum - strLen + dotPos + 1);i++){
resultStr = resultStr+"0";
}
return resultStr;
}
}
}
页:
[1]