簡體   English   中英

輸入類型號,十進制值

[英]Input type number, decimal value

如何在不使用正則表達式的情況下驗證輸入類型號是否包含最多 3 個小數

let x = 1.5555
let y = 1.55
x is false
y is true

您可以使用如下公式:

(x * 1000) % 1 === 0

對於小數點后三位或更少的數字, x*1000會將其轉換為 integer。 例如:

1.55 -> 1550
1.555 -> 1555 

對於多於 3 位小數的數字,執行x*1000不會將其轉換為 int,它只會將部分數字移至:

1.5555 -> 1555.5 // still a decimal

% 1檢查然后得到上面數字的余數,如果它被1除。如果余數為0,那么這個數字被轉換為integer,如果大於0,那么x*1000轉換失敗將數字轉換為 int,這意味着它有 3 個以上的小數:

 const validate = x => (x * 1000) % 1 === 0; console.log(validate(1.5555)); // false console.log(validate(1.55)); // true console.log(validate(1.555)); // true console.log(validate(0.00000001)); // false

您可以使用toString()方法轉換為字符串,然后在該點拆分. 使用.split()方法,這將產生一個數組。 數組中的第一個元素是一個包含整數部分的字符串,這對我們來說並不有趣。 結果數組中索引 1 處的第二個元素是字符串形式的小數部分。

現在您可以檢查該字符串的長度屬性,如果它等於或小於三,這意味着它具有三個或更少的十進制數字,那么我們在驗證 function 中返回 true,否則我們返回 false。

 const x = 1.5555; const y = 1.555; const z = 1.55 function validate(num){ return num.toString().split(".")[1].length <= 3; } console.log(validate(x)); console.log(validate(y)); console.log(validate(z));

這可能會解決您的問題

let x = 1.5555;
let y = 1.55;
int length = x.Substring(number.IndexOf(".")).Length;
bool result = length > 3 ? true: false;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM