gpt4 book ai didi

javascript - 使用Javascript计算小数点前后的位数

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:37:21 24 4
gpt4 key购买 nike

我有一个要求,我应该允许小数点前最多 14 位数字和小数点后最多 4 位数字。

有没有一种方法可以让用户知道他是否正在输入 222222222222222.222 -- 一旦他使用 Javascript 离开该文本框,小数点前 15 位数字将无效。

我试过了,但对我没有帮助:

  MynewTextBox.Attributes.Add("onkeyup", "javascript:this.value=Comma(this.value);");

function Comma( Num ) {

var period = Num.indexOf('.');
if ( Num.length > (period + 4))
alert("too many after decimal point");
if ( period != -1 )
{
Num += '00000';
Num = Num.substr( 0, (period + 4));
}

另外,上面的函数给我错误:

Object Expected.

谁能帮我解决这个问题。

最佳答案

为什么不使用 split()方法(下面未经测试的代码):

function Comma(num) {
var s = num.split('.');
if (s[0].length > 14) {
// Too many numbers before decimal.
}
if (s[1].length > 4) {
// Too many numbers after decimal.
}
}

编辑
以下将采用任何数字并返回一个小数点前最多 14 位数字和小数点后最多 4 位数字的数字(它实际上并没有验证输入是一个数字,但你得到了图片):

function Comma(num) {
var s = num.split('.');
var beforeDecimal = s[0]; // This is the number BEFORE the decimal.
var afterDecimal = '0000'; // Default value for digits after decimal
if (s.length > 1) // Check that there indeed is a decimal separator.
afterDecimal = s[1]; // This is the number AFTER the decimal.
if (beforeDecimal.length > 14) {
// Too many numbers before decimal.
// Get the first 14 digits and discard the rest.
beforeDecimal = beforeDecimal.substring(0, 14);
}
if (afterDecimal.length > 4) {
// Too many numbers after decimal.
// Get the first 4 digits and discard the rest.
afterDecimal = afterDecimal.substring(0, 4);
}

// Return the new number with at most 14 digits before the decimal
// and at most 4 after.
return beforeDecimal + "." + afterDecimal;
}

(和往常一样,代码未经测试。)

关于javascript - 使用Javascript计算小数点前后的位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7046856/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com