Javascript 将文本框值四舍五入
我有一个双输入模式的radtextbox。我把它设定为1。因此,它给出的结果是Javascript 将文本框值四舍五入,javascript,rounding,Javascript,Rounding,我有一个双输入模式的radtextbox。我把它设定为1。因此,它给出的结果是 20.6 => 20.5 20.7 => 20.5 20.9 => 21.0 但我所需要的就是这样(很少有样品) 我试图通过限制一个以上的十进制值来解决这个问题。但是代码工作不正常 代码: 函数GetIndex(发送方,参数){ var textbox=$find(“”); var val=textbox.get_value(); var dsds=val.toString(); 如果(d
20.6 => 20.5
20.7 => 20.5
20.9 => 21.0
但我所需要的就是这样(很少有样品)
我试图通过限制一个以上的十进制值来解决这个问题。但是代码工作不正常
代码:
函数GetIndex(发送方,参数){
var textbox=$find(“”);
var val=textbox.get_value();
var dsds=val.toString();
如果(dsds.indexOf(“.”>-1){
如果(dsds.length-(dsds.indexOf(“.”+1)>1){
警报(dsds.length-(dsds.indexOf(“.”+1));
参数设置\取消(真);
}
其他的
返回true;
}
否则{
if(parseInt(dsds)>0){
返回true;
}
其他的
参数设置\取消(真);
}
}
我正在使用以下代码。(可能更笨重)
函数转换浮点十进制(num,nDecimal)
{
var s;
如果(nDecimal==null)
nDecimal=1;
如果(nDecimal==1)
{
if(num<0)
{
num=Math.abs(num);
s=((数学四舍五入(parseFloat(num)*10)/10)*-1);
}
其他的
s=(Math.round(parseFloat(num)*10)/10);
s=s.toString();
如果(s.indexOf(“.”)=-1)
s+=“.0”;
}
否则如果(nDecimal==2)
{
if(num<0)
{
num=Math.abs(num);
s=((数学四舍五入(parseFloat(num)*100)/100)*-1);
}
其他的
s=(Math.round(parseFloat(num)*100)/100);
s=s.toString();
如果(s.indexOf(“.”)=-1)
s+=“.00”;
如果(s.indexOf(“.”)=s.length-2)//添加前导0
s+=“0”;
}
else if(nDecimal==0)
{
if(num<0)
{
num=Math.abs(num);
s=(数学四舍五入(num)*-1);
}
其他的
s=(Math.round(num));
}
其他的
{
s=parseInt(s);
}
返回s;
}
您可以使用Jquery进行此操作
var num = parseFloat(document.getElementById('textbox').value);
var new_num = Math.round(num).toFixed(2);
请在此处尝试以下代码符合预期。谢谢你的回复 代码:
function change(lnk, evt) {
var textbox = $find('<%= CPDTextBox.ClientID %>');
var val = lnk.value.toString();
if (val != '') {
if (val.indexOf(".") > -1) {
var values = new Array();
values = val.split(".");
var rouDec = round(parseFloat('.' + values[1]), 1);
if (rouDec > .5) {
val = parseInt(values[0]) + 1;
}
else if (rouDec == .5) {
val = parseInt(values[0]) + .5;
}
}
}
textbox.set_value(val);
}
function round(n, dec) {
n = parseFloat(n);
if (!isNaN(n)) {
if (!dec) var dec = 0;
var factor = Math.pow(10, dec);
return Math.floor(n * factor + ((n * factor * 10) % 10 >= 5 ? 1 : 0)) / factor;
} else {
return n;
}
}
功能更改(lnk、evt){
var textbox=$find(“”);
var val=lnk.value.toString();
如果(val!=''){
如果(val.indexOf(“.”>-1){
var值=新数组();
值=val.split(“.”);
var rouDec=四舍五入(parseFloat('.'+值[1]),1);
如果(rouDec>.5){
val=parseInt(值[0])+1;
}
否则如果(rouDec==0.5){
val=parseInt(值[0])+.5;
}
}
}
文本框。设置_值(val);
}
功能轮(n,12月){
n=浮点(n);
如果(!isNaN(n)){
如果(!dec)var dec=0;
var系数=数学功率(12月10日);
返回数学下限(n*因子+((n*因子*10)%10>=5?1:0))/因子;
}否则{
返回n;
}
}
这其中的哪一部分是jQuery?
<telerik:RadNumericTextBox ID="CPDPointsTextBox" Width="39px" runat="server" MaxLength="5"
MaxValue="999" MinValue="0">
<NumberFormat DecimalDigits="1" KeepNotRoundedValue="false" />
<ClientEvents OnValueChanged="CPDPointsTextBox_ValueChanged" OnKeyPress="GetIndex" />
</telerik:RadNumericTextBox>
function convertFloatDecimal (num, nDecimal)
{
var s;
if (nDecimal == null)
nDecimal = 1;
if (nDecimal == 1)
{
if (num < 0)
{
num= Math.abs (num);
s = ((Math.round (parseFloat (num) * 10)/10 ) * -1);
}
else
s = (Math.round (parseFloat (num) * 10)/10);
s = s.toString();
if (s.indexOf (".") == -1)
s+= ".0";
}
else if (nDecimal == 2)
{
if (num < 0)
{
num= Math.abs (num);
s = ((Math.round (parseFloat (num) * 100) / 100) * -1);
}
else
s = (Math.round (parseFloat (num) * 100) / 100);
s = s.toString();
if (s.indexOf (".") == -1)
s+= ".00";
if (s.indexOf (".") == s.length-2) // Add leading 0
s+= "0";
}
else if (nDecimal == 0)
{
if (num < 0)
{
num= Math.abs (num);
s = (Math.round (num) * -1);
}
else
s = (Math.round (num));
}
else
{
s = parseInt (s);
}
return s;
}
var num = parseFloat(document.getElementById('textbox').value);
var new_num = Math.round(num).toFixed(2);
function change(lnk, evt) {
var textbox = $find('<%= CPDTextBox.ClientID %>');
var val = lnk.value.toString();
if (val != '') {
if (val.indexOf(".") > -1) {
var values = new Array();
values = val.split(".");
var rouDec = round(parseFloat('.' + values[1]), 1);
if (rouDec > .5) {
val = parseInt(values[0]) + 1;
}
else if (rouDec == .5) {
val = parseInt(values[0]) + .5;
}
}
}
textbox.set_value(val);
}
function round(n, dec) {
n = parseFloat(n);
if (!isNaN(n)) {
if (!dec) var dec = 0;
var factor = Math.pow(10, dec);
return Math.floor(n * factor + ((n * factor * 10) % 10 >= 5 ? 1 : 0)) / factor;
} else {
return n;
}
}