如何在 JavaScript 中檢查兩個數字是否近似相等?
在本教程中,我們將檢查兩個數字是否近似相等。如果給定的兩個數字相等,我們將列印“yes”,否則列印“no”。
但我要說明的是,我們不會在這裡做任何魔法,基本上我們還需要給出一個 epsilon 值。
因此,當我們計算這兩個數字之間的絕對差,然後與 epsilon 進行比較時,如果絕對差小於 epsilon,則這兩個數字近似相等,否則近似不相等。
假設給定的兩個數字是 6.79 和 6.75,epsilon 為 0.05,那麼我們首先計算絕對差,結果為 abs(6.79-6.75)=0.04,小於 epsilon 值,因此這兩個數字近似相等。
你可能想知道為什麼是絕對值?
這是因為,如果我們從較小的值中減去較大的值,那麼差值將為負數,這將不會給出預期的結果。因此,透過取絕對值,我們可以避免這個問題。
讓我們來看一些例子
Input: Value1= 2.03 Value2= 2.01 Epsilon= 0.01 Output: Approximately NOT equal
當我們計算這兩個數字之間的絕對差時,它將是 0.02,而給定的 epsilon 值是 0.01,因此我們的絕對差大於 epsilon 值,所以它們近似不相等。
語法
以下是檢查兩個數字是否近似相等的語法/虛擬碼:
Const difference= Math.abs(val1-val2);
if(difference<epsilon){
approximately equal
} else {
Aapproximately NOT equal
}演算法
- 步驟 1 - 從使用者處獲取兩個數字和 epsilon 值的輸入。將這些值分別賦給變數 val1、val2 和 epsilon。
- 步驟 2 - 計算兩個數字 val1 和 val2 之間的絕對差。將此差值賦給變數 difference。
- 步驟 3 - 檢查 difference 是否小於 epsilon。如果為真,則顯示適當的訊息,說明這兩個數字近似相等。如果為假,則顯示適當的訊息,說明這兩個數字近似不相等。
示例 1
讓我們將我們的函式程式碼嵌入到 HTML 程式碼中,以檢查實際工作情況。嘗試輸入不同的數字和 epsilon 值以檢查不同的情況。
<!DOCTYPE html>
<html>
<body>
<h1>Approximately Equal?</h1>
<input type="number" id="val1" placeholder="Enter number1.." /><br><br>
<input type="number" id="val2" placeholder="Enter number2.." /><br><br>
<input type="number" id="epsilon" placeholder="Enter max epsilon.." /><br><br>
<input type="button" value="IsEqual?" onClick="checkIf_approx_equal()" style="color: blue; margin-left: 35px;"/>
<h2 id="writeHere"></h2>
<script>
function checkIf_approx_equal(){
var val1=document.getElementById("val1").value
var val2=document.getElementById("val2").value
var epsilon=document.getElementById("epsilon").value
var difference= Math.abs(val1-val2);
console.log(difference)
if(difference<epsilon){
document.getElementById('writeHere').innerHTML="Yes Approximately Equal"
} else {
document.getElementById('writeHere').innerHTML="No Approximately NOT Equal"
}
}
</script>
</body>
</html>我們也可以定義我們自己的 epsilon 值,如果使用者不想給出任何 epsilon 值,那麼我們必須取一個 epsilon 值,並檢查使用者是否輸入了兩個值,因為必須給出兩個數字。
示例 2
在下面的程式中,我們檢查數字是否近似相等。我們優化了程式碼,如果使用者沒有輸入任何數字或兩個數字,則顯示訊息。
<!DOCTYPE html>
<html>
<body>
<h1>Approximately Equal?</h1>
<input type="number" id="val1" placeholder="Enter number1.." /><br><br>
<input type="number" id="val2" placeholder="Enter number2.." /><br><br>
<input type="number" id="epsilon" placeholder="Enter max epsilon.." /><br><br>
<input type="button" value="IsEqual?" onClick="checkIf_approx_equal()" style="color: blue; margin-left: 35px;"/>
<h2 id="writeHere"></h2>
<script>
function checkIf_approx_equal(){
var val1=document.getElementById("val1").value
var val2=document.getElementById("val2").value
var epsilon=document.getElementById("epsilon").value
if(!val1){
document.getElementById('writeHere').innerHTML="Please enter a value in first Box"
return;
}
if(!val2){
document.getElementById('writeHere').innerHTML="Please enter a value in second Box"
return;
}
if(!epsilon) epsilon=1.5
var difference= Math.abs(val1-val2);
console.log(difference)
if(difference<epsilon){
document.getElementById('writeHere').innerHTML="Equal"
} else {
document.getElementById('writeHere').innerHTML="Not Equal"
}
}
</script>
</body>
</html>請使用不同的 number 1 和 number 2 值進行檢查。嘗試在不輸入任何數字或兩個數字的情況下進行檢查。由於我們在 epsilon 中給出了預設值 1.5,因此如果使用者不輸入,它將使用該值工作。
因此,我們看到了檢查兩個數字是否近似相等的方法。
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP