Diviser par 0.

Forum pour parler de prog. et d'informatique questions/réponses/trucs sont les bienvenus.

Diviser par 0.

Messagede AntonN » Mar Fév 21, 2012 10:12 am

J'avais un petit problème de division par 0. Heureusement, j'ai réglé l'erreur.

Par contre, j'ai testé divers trucs et il s'avère que la division par 0 (dont la réponse est indéfinie) peut prendre plus d'une 'valeur'..

Si vous utiliser VS10 et le code suivant :
Code: Tout sélectionner
// Checking if a variable is NaN.
  double doubleVariable = 0.0;

  doubleVariable /= 0.0;

  cout <<  "Value to check : " << doubleVariable << endl;

  if(_isnan(doubleVariable))
  {
    cout << "0.0 / 0.0 is NaN using '_isnan'" << endl;
  }
  else
  {
    cout << "0.0 / 0.0 is a regular number." << endl;
  }

  if(doubleVariable != doubleVariable)
  {
    cout << "0.0 / 0.0 is NaN using 'doubleVariable != doubleVariable'" << endl;
  }
  else
  {
    cout << "0.0 / 0.0 is a regular number." << endl;
  }

  // Checking if a variable is NaN.
  doubleVariable = 1.0;

  doubleVariable /= 0.0;

  cout << endl <<  "Value to check : " << doubleVariable << endl;

  if(_isnan(doubleVariable))
  {
    cout << "1.0 / 0.0 is NaN using '_isnan'" << endl;
  }
  else
  {
    cout << "1.0 / 0.0 is a regular number." << endl;
  }

  if(doubleVariable != doubleVariable)
  {
    cout << "1.0 / 0.0 is NaN using 'doubleVariable != doubleVariable'" << endl;
  }
  else
  {
    cout << "1.0 / 0.0 is a regular number." << endl;
  }

  // Checking if a variable is NaN.
  doubleVariable = 0.0;

  doubleVariable /= 1.0;

  cout << endl <<  "Value to check : " << doubleVariable << endl;

  if(_isnan(doubleVariable))
  {
    cout << "0.0 / 1.0 is NaN using '_isnan'" << endl;
  }
  else
  {
    cout << "0.0 / 1.0 is a regular number." << endl;
  }

  if(doubleVariable != doubleVariable)
  {
    cout << "0.0 / 1.0 is NaN using 'doubleVariable != doubleVariable'" << endl;
  }
  else
  {
    cout << "0.0 / 1.0 is a regular number." << endl;
  }


Vous obtiendrez ceci :
Image

En passant, il faut inclure <float.h> pour '_isnan', sinon il parait qu'il existe 'isnan' et 'isinf', mais j'ai pas été capable de les utiliser.

Ceux qui ont du temps à perdre, vous pouvez comparer vos résultats avec un autre compilateur.
Des fois, je sors du forum pi je me dis WOW!
Avatar de l'utilisateur
AntonN
Tas de marde
 
Messages: 4997
Inscription: Ven Sep 15, 2006 3:15 pm
Localisation: À Laval!

Re: Diviser par 0.

Messagede Oli » Mar Fév 21, 2012 10:18 am

En général je m'arrange pour pas diviser par 0 en premier lieu.
Récamment on a vraiment le don de créer des problèmes ou il n'y en a jamais eu... - face de crane Ouelette
Avatar de l'utilisateur
Oli
le violoneux ronald
 
Messages: 11556
Inscription: Sam Sep 09, 2006 1:22 pm
Localisation: ( ͡° ͜ʖ ͡°)

Re: Diviser par 0.

Messagede Mat » Mar Fév 21, 2012 10:30 am

Oli a écrit:En général je m'arrange pour pas diviser par 0 en premier lieu.

QFT
coco
Avatar de l'utilisateur
Mat
Le refus de friandiser
 
Messages: 4830
Inscription: Jeu Sep 04, 2008 5:39 pm
Localisation: Le forum

Re: Diviser par 0.

Messagede AntonN » Mar Fév 21, 2012 10:56 am

Exact! Je voulais simplement partager ma curiosité.
Des fois, je sors du forum pi je me dis WOW!
Avatar de l'utilisateur
AntonN
Tas de marde
 
Messages: 4997
Inscription: Ven Sep 15, 2006 3:15 pm
Localisation: À Laval!

Re: Diviser par 0.

Messagede ATN de LR » Mar Fév 21, 2012 11:58 am

C'est parce que le comportement d'une division par 0 n'est pas définie par le standard. C'est au choix du vendeur de ton compilateur.
Fuck les dauphins.
Avatar de l'utilisateur
ATN de LR

 
Messages: 1556
Inscription: Dim Sep 24, 2006 10:13 pm
Localisation: Centre Sud

Re: Diviser par 0.

Messagede AntonN » Mar Fév 21, 2012 12:34 pm

Dans ce cas-ci, Microsoft offre aucune fonction permettant de savoir si un chiffre est 1.#INF.
Des fois, je sors du forum pi je me dis WOW!
Avatar de l'utilisateur
AntonN
Tas de marde
 
Messages: 4997
Inscription: Ven Sep 15, 2006 3:15 pm
Localisation: À Laval!

Re: Diviser par 0.

Messagede Stefan » Mar Fév 21, 2012 1:12 pm

En général je m'arrange pour pas avoir un chiffre égal a 1.#INF en premier lieu.
[...] parce que la langue, c'est une osti de shit inanimée qui a même pas d'émotion et qui est même pas concrète en soi

-Phil
Stefan
Produit du terroir
 
Messages: 3245
Inscription: Sam Sep 09, 2006 2:14 pm

Re: Diviser par 0.

Messagede AntonN » Mar Fév 21, 2012 2:05 pm

En général je m'arrange pour pas avoir un chiffre égal a 1.#INF en premier lieu.
Des fois, je sors du forum pi je me dis WOW!
Avatar de l'utilisateur
AntonN
Tas de marde
 
Messages: 4997
Inscription: Ven Sep 15, 2006 3:15 pm
Localisation: À Laval!

Re: Diviser par 0.

Messagede Mat » Mar Fév 21, 2012 2:08 pm

Ce thread est tres divertissant.
coco
Avatar de l'utilisateur
Mat
Le refus de friandiser
 
Messages: 4830
Inscription: Jeu Sep 04, 2008 5:39 pm
Localisation: Le forum

Re: Diviser par 0.

Messagede AntonN » Mar Fév 21, 2012 2:44 pm

Image
Des fois, je sors du forum pi je me dis WOW!
Avatar de l'utilisateur
AntonN
Tas de marde
 
Messages: 4997
Inscription: Ven Sep 15, 2006 3:15 pm
Localisation: À Laval!

Re: Diviser par 0.

Messagede Phil » Mar Fév 21, 2012 3:02 pm

je m'imagine anton dans son bureau....

Fuck mon programme fais une division par 0! Ah ca devrait pas être trop dur a régler. Je vais tester le résultat de la division, pis si c'est #inf je fais une procédure spéciale.


Image
Image
Image
Image
Image
Black Label... Criss moué sa sur la tabel
Avatar de l'utilisateur
Phil
Administrator
 
Messages: 11158
Inscription: Jeu Sep 07, 2006 4:33 pm
Localisation: Fleurimont

Re: Diviser par 0.

Messagede Le OL » Mar Fév 21, 2012 3:33 pm

Oli a écrit:En général je m'arrange pour pas diviser par 0 en premier lieu.

Tu peux aussi tester ton dénominateur. Appelons-le d.

Si d = 0, t'as juste à évaluer la limite de ton quotient quand d->0 à la place de bêtement diviser par 0.

Plus simple de même.
« So we beat on, boats against the current, borne back ceaselessly into the past. » - F. Scott Fitzgerald
Avatar de l'utilisateur
Le OL
Le Tantriste
 
Messages: 4906
Inscription: Sam Sep 23, 2006 10:11 pm
Localisation: Dans un palace

Re: Diviser par 0.

Messagede Mat » Mar Fév 21, 2012 3:56 pm

Le OL a écrit:
Oli a écrit:En général je m'arrange pour pas diviser par 0 en premier lieu.

Tu peux aussi tester ton dénominateur. Appelons-le d.

Si d = 0, t'as juste à évaluer la limite de ton quotient quand d->0 à la place de bêtement diviser par 0.

Plus simple de même.

k.
coco
Avatar de l'utilisateur
Mat
Le refus de friandiser
 
Messages: 4830
Inscription: Jeu Sep 04, 2008 5:39 pm
Localisation: Le forum

Re: Diviser par 0.

Messagede Dieu » Mer Fév 22, 2012 11:38 am

En général je m'arrange pour pas diviser par 0 en premier lieu.
Talleyrand à un retour des Etats Unis d’Amérique dira « J’y ai trouvé un pays avec trente-deux religions mais une seule sauce. », résumant ainsi l’importance des sauces dans la cuisine française.
Avatar de l'utilisateur
Dieu
NSFW
 
Messages: 7072
Inscription: Dim Sep 10, 2006 6:03 pm
Localisation: (ノಥ益ಥ)ノ彡┻━┻

Re: Diviser par 0.

Messagede France » Mer Fév 22, 2012 11:40 am

En général, Si d = 0, je m'arrange pour pas avoir à évaluer la limite de mon quotient quand d->0 en premier lieu.
Mosh ta mère.
Avatar de l'utilisateur
France
la haine
 
Messages: 1137
Inscription: Lun Sep 11, 2006 6:11 pm
Localisation: Laval

Suivante

Retourner vers Programmation et Informatique

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron