在本教程中,我們將檢查兩個(gè)數(shù)字是否近似相等。如果給定的兩個(gè)數(shù)字相等,那么我們將打印 yes,否則則不是。
但是讓我明確一下,我們不會(huì)在這里做任何魔術(shù),基本上我們還必須給出一個(gè) epsilon 值。
因此,當(dāng)我們計(jì)算這兩個(gè)數(shù)字之間的絕對(duì)差,然后與 epsilon 進(jìn)行比較時(shí),如果絕對(duì)差小于 epsilon,則兩個(gè)數(shù)字近似相等,否則不近似相等。假設(shè)給出的兩個(gè)數(shù)字是 6.79 和 6.75,epsilon 為 0.05,因此我們首先計(jì)算絕對(duì)差,結(jié)果為 abs (6.79-6.75)=0.04,它小于 epsilon 值,因此數(shù)字近似相等.
您可能會(huì)想為什么是絕對(duì)的?
所以,這是在我們要從中減去的第一個(gè)值是最小值并且我們要減去的值是最小值的情況下,那么在這種情況下差異將為負(fù),并且不會(huì)給出所需的輸出。所以,通過(guò)取絕對(duì)值我們可以擺脫這個(gè)問(wèn)題。
讓我們舉個(gè)例子
Input: Value1= 2.03 Value2= 2.01 Epsilon= 0.01 Output: Approximately NOT equal
登錄后復(fù)制
當(dāng)我們計(jì)算兩個(gè)數(shù)字之間的絕對(duì)差時(shí),它將是 0.02,而給定的 epsilon 值是 0.01,因此我們的絕對(duì)差大于 epsilon 值,因此它不近似相等。
語(yǔ)法
以下是檢查兩個(gè)數(shù)字是否近似相等的語(yǔ)法/偽代碼 –
Const difference= Math.abs(val1-val2); if(difference<epsilon){ approximately equal } else { Aapproximately NOT equal }
登錄后復(fù)制
算法
- 第1步 – 從用戶處輸入兩個(gè)數(shù)字和epsilon值。將這些值分別分配給變量 val1、val2、epsilon。第 2 步 – 計(jì)算兩個(gè)數(shù)字 val1 和 val2 之間的絕對(duì)差。將此差異分配給變量差異。步驟 3 – 檢查差異是否小于 epsilon。如果為真,則顯示正確的消息,說(shuō)明兩個(gè)數(shù)字大約相等。如果為 false,則顯示數(shù)字不近似相等的正確消息。
示例 1
讓我們將函數(shù)代碼嵌入到 HTML 代碼中以檢查現(xiàn)實(shí)世界的工作情況。嘗試輸入不同的數(shù)字和 epsilon 值來(lái)檢查不同的情況。
<!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>
登錄后復(fù)制
我們還可以定義我們的 epsilon 假設(shè),如果用戶不想給出任何 epsilon 值,那么我們必須獲取 epsilon 值并檢查用戶是否輸入了這兩個(gè)值,因?yàn)橛斜匾o出這兩個(gè)數(shù)字.
示例 2
在下面的程序中,我們檢查數(shù)字是否近似相等。我們優(yōu)化了代碼,以便在用戶未輸入任何或兩個(gè)數(shù)字時(shí)顯示消息。
<!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>
登錄后復(fù)制
請(qǐng)檢查數(shù)字 1 和數(shù)字 2 的不同值。嘗試在不輸入任何或兩個(gè)數(shù)字的情況下進(jìn)行檢查。由于我們將 epsilon 的默認(rèn)值設(shè)置為 1.5,以防用戶不輸入,因此它將使用該值進(jìn)行工作。
因此,我們看到了檢查兩個(gè)數(shù)字是否近似相等的方法。
>
以上就是如何在 JavaScript 中檢查兩個(gè)數(shù)字近似相等?的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注www.92cms.cn其它相關(guān)文章!