Проблема при сравнении чисел с плавающей запятой и как их правильно сравнивать?

Опубликовано: 2 Декабря, 2021

В этой статье мы увидим, в чем проблема при сравнении чисел с плавающей запятой, и обсудим правильный способ сравнения двух чисел с плавающей запятой.

В чем обычно проблема при сравнении чисел с плавающей запятой?

Давайте сначала сравним два числа с плавающей запятой с помощью оператора отношения (==) .

Пример: использование «==» для сравнения

CPP

// C++ program to compare
// floating point numbers
#include <bits/stdc++.h>
using namespace std;
void compareFloatNum( double a, double b)
{
if (a == b) {
cout << "The numbers are equal"
<< endl;
}
else {
cout << "The numbers are not equal"
<< endl;
}
}
// Driver code
int main()
{
double a = (0.3 * 3) + 0.1;
double b = 1;
compareFloatNum(a, b);
}

Ява

// Java program to compare
// floating point numbers
class GFG
{
static void compareFloatNum( double a, double b)
{
if (a == b)
{
System.out.print( "The numbers are equal" + " " );
}
else
{
System.out.print( "The numbers are not equal" + " " );
}
}
// Driver code
public static void main(String[] args)
{
double a = ( 0.3 * 3 ) + 0.1 ;
double b = 1 ;
compareFloatNum(a, b);
}
}
// This code is contributed by 29AjayKumar

Python

# Python program to compare
# floating point numbers
def compareFloatNum(a, b):
if (a = = b):
print ( "The numbers are equal" )
else :
print ( "The numbers are not equal" )
# Driver code
a = ( 0.3 * 3 ) + 0.1
b = 1
compareFloatNum(a, b)
# This code is contributed by mohit kumar 29

C #

// C# program to compare
// floating point numbers
using System;
class GFG
{
static void comparefloatNum( double a, double b)
{
if (a == b)
{
Console.Write( "The numbers are equal" + " " );
}
else
{
Console.Write( "The numbers are not equal" + " " );
}
}
// Driver code
public static void Main(String[] args)
{
double a = (0.3 * 3) + 0.1;
double b = 1;
comparefloatNum(a, b);
}
}
// This code is contributed by PrinciRaj1992
Выход:

Цифры не равны