Pages: [1]   Go Down
Author Topic: Détection de la virgule dans un float  (Read 703 times)
0 Members and 1 Guest are viewing this topic.
Geneva
Offline Offline
Faraday Member
**
Karma: 24
Posts: 3171
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Encore une de mes questions....  ;D

Est il possible de détecter la position de la virgule dans un float.

par exemple :

354.4809

La valeur retournée serait 4 (position depuis le début du nombre) ou 5 (position depuis la fin du nombre).
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

0
Offline Offline
Newbie
*
Karma: 0
Posts: 22
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

2 solutions : soit regarder la mantisse (exposant) du flottant (plus d'infos ici sur la représentation d'un flottant simple précision : http://en.wikipedia.org/wiki/Single_precision_floating-point_format )

Ou alors un algo simple :

soit x ton nombre, i la position de la virgule

i = 0
tant que x > 1
  x = x / 10.0
  i++
fin tant que

retourne i


Voilà !  smiley-wink

QNux
  
Logged

Geneva
Offline Offline
Faraday Member
**
Karma: 24
Posts: 3171
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Cool, merci.  smiley-wink
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

France
Offline Offline
Faraday Member
**
Karma: 23
Posts: 3009
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

La partie entière du log décimal d'un nombre permet de trouver la position de la virgule.
« Last Edit: January 09, 2011, 12:13:46 pm by fdufnews » Logged

Pages: [1]   Go Up
Jump to: