| Arrondir un réel à deux chiffres après la virgule | |
|
+4jean_debord papydall Nardo26 Yannick 8 participants |
|
Auteur | Message |
---|
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: Arrondir un réel à deux chiffres après la virgule Lun 25 Juin 2012 - 15:07 | |
| Bonjour à tous, Après une longue absence du forum, je me pose la question suivante : Quelqu'un a t il créer une dll ou aurai je raté une instruction pour arrondir un réel a un nombre de chiffres après la virgule ? ou dois je continuer à jouer avec Int et Frac ? | |
|
| |
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Arrondir un réel à deux chiffres après la virgule Lun 25 Juin 2012 - 15:37 | |
| Bonjour ygeronimi, Pour arrondir tu peux faire ceci : - Code:
-
DIM A A=1.234 A= INT((A+0.005)*100)/100 PRINT A
A=1.235 A= INT((A+0.005)*100)/100 PRINT A | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 25 Juin 2012 - 15:41 | |
| Merci Nardo en fait j'ai rien loupé on joue toujours avec "Int".... dommage un petit truc du style : dim x, y x=1.235 y=round(x,2) print x x = 1.24 ca aurait été pas mal mais bon...Jack est sur des trucs plus important et de loin.
Dernière édition par ygeronimi le Lun 25 Juin 2012 - 15:48, édité 1 fois | |
|
| |
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Arrondir un réel à deux chiffres après la virgule Lun 25 Juin 2012 - 15:44 | |
| Non t'as rien loupé mais quelque part, c'est pas plus mal: certains voudront arrondir 1.245 à 1.25 et d'autres à 1.24... avec le INT, c'est toi qui décides.... | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 25 Juin 2012 - 15:50 | |
| j'ai réedité plus haut mais il me semble qu'il y a une règle mathématique pour les arrondis .... 1 à 4 < 5 à 9 > | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Arrondir un réel à deux chiffres après la virgule Lun 25 Juin 2012 - 18:42 | |
| Salut tout le monde. Pour la règle mathématique, je crois que le resultat d’arrondir 1.245 à 2 chiffres après la virgule doit donner 1.25 et non 1.24 On arrondit par excès et non par défaut. Beaucoup mieux : si on pouvait afficher la valeur d’une variable réelle sur une longueur totale L dont D chiffres après la virgule. Par exemple, si X = 1.2456789 En Turbo Pascal, on fait : Writeln(‘X = ‘,X :6 :2) ---> affiche X = 1.25 sur 6 positions avec 2 chiffres après la virgule Comme 1.25 comporte 4 positions (on compte aussi le point décimal), il y a 2 espaces avant le 1 Si, à l’instar d’autres Basic( PRINT USING …), on disposait en PANORAMIC d’une telle instruction, ça sera merveilleux. @ygeronimi Dans l’exemple que tu donnes, tu veux, sans doute, écrire print y et non print x. Tout le monde aurait compris et c’est l’essentiel. | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: Re: Arrondir un réel à deux chiffres après la virgule Lun 25 Juin 2012 - 19:22 | |
| Oui oui ... C'est print y pas x... c'est une faute de frappe...... le but du jeu est d'éviter un affichage du type : 1,12549871587465486936586997889687487954874878 et de coller un peu plus près à des résultats de calcul de facture ou le resultat final est le produit de sous resultats déjà arrondis.... | |
|
| |
jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Arrondir un réel à deux chiffres après la virgule Mar 26 Juin 2012 - 9:44 | |
| Voici le source d'une DLL en FreeBASIC : - Code:
-
#include "vbcompat.bi"
extern "Windows-MS"
function print_format(byref x as double, byref format_str as zstring ptr, byref x_str as zstring ptr) as integer export *x_str = format(x, *format_str) return 0 end function
end extern
sauvegarder sous format.bas puis compiler par : - Code:
-
fbc format.bas -dll
Exemple d'appel en Panoramic : - Code:
-
dim x, format$, xstr$, result%
x = 4 * atn(1)
dll_on "format.dll"
format$ = "0.00000" xstr$ = format$ : ' pour dimensionner la chaine
result% = dll_call3("print_format", adr(x), adr(format$), adr(xstr$))
print xstr$
dll_off
C'est un peu lourd, mais comme la prochaine version de Panoramic sera basée sur FreeBASIC, il est probable que Jack ajoutera cette fonction. | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 26 Juin 2012 - 13:38 | |
| | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 26 Juin 2012 - 19:44 | |
| @ JL as tu une adresse pour que je puisse télécharger la bonne version de Freebasic ? ( je tombe systématiquement sur des mode console et je capte rien au fonctionnement ) Merci | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Arrondir un réel à deux chiffres après la virgule Mar 26 Juin 2012 - 21:30 | |
| | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 26 Juin 2012 - 23:17 | |
| Merci merci , je cours telecharger... | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 26 Juin 2012 - 23:52 | |
| | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Arrondir un réel à deux chiffres après la virgule Mer 27 Juin 2012 - 0:09 | |
| Cherche des IDE pour FreeBasic. Il y en a essentiellemt 2: - FbEdit ' FBIde Je n'ai pas les liens sous la main, mais Google est ton ami... | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 27 Juin 2012 - 0:13 | |
| | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Arrondir un réel à deux chiffres après la virgule Mer 27 Juin 2012 - 0:18 | |
| | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Arrondir un réel à deux chiffres après la virgule Mer 27 Juin 2012 - 0:49 | |
| | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Arrondir un réel à deux chiffres après la virgule Mer 27 Juin 2012 - 1:07 | |
| @ygeronimi Pour la traduction, il n’y a pas de problème puisque tu peux utiliser FBIDE en Français. Pour cela procèdes comme ceci. Après avoir chargé FBIDE, installes-le dans ton répertoire préféré. Ensuite, exécute FBIDE.EXE : il s’exécute en Anglais. Cliques sur VIEWS, puis sur SETTINGS, SELECT YOUR LANGUAGE, choisis alors FRENCH puis OK. Quittes FBIDE et relances-le : il t’indique un message d’erreur ‘file ",line 261 : ‘=’ expected’ Ignores ce message en cliquant sur OK : FBIDE est désormais en Français. Alors bonne programmation. | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 27 Juin 2012 - 1:14 | |
| en voulant compiler avec Fbedit j'ai un message d'erreur
C:\FreeBASIC\fbc -s gui -dll -export "format.bas" format.bas(10) error 114: Expected 'END EXTERN' in 'end function'
Build error(s)
| |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 27 Juin 2012 - 1:18 | |
| Et avec Fbide :
Command executed: "C:\FreeBasic\fbc.exe" "C:\Users\Yannick\Documents\Prog dll FBasic\format.bas"
Compiler output: C:\Users\Yannick\Documents\Prog dll FBasic\format.bas(10) error 114: Expected 'END EXTERN' in 'end function'
Results: Compilation failed
System: FBIde: 0.4.6 fbc: FreeBASIC Compiler - Version 0.23.0 (08-14-2011) for win32 (target:win32) OS: Windows NT 6.1 (build 7601, Service Pack 1) | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Arrondir un réel à deux chiffres après la virgule Mer 27 Juin 2012 - 1:32 | |
| Salut tout le monde. J’ai compilé la DLL ‘FORMAT.BAS’ donnée par jean_debord. Je l’ai testé et ça fonctionne : ça répond exactement à la demande, à savoir afficher la valeur sur la longueur et avec le nombre de décimales qu’on veut. Voici le résultat de mon test - Code:
-
dim montant, format$, xstr$, result% ,i% label formater
gosub formater end
formater: dll_on "format.dll" for i% = 1 to 20 montant = 100000*rnd(1000) format$ = " *** 00000000.00000" ' format$ = "00,000,000.00 $" ' format$ = " 00 000 000.00 Dollars" ' format$ = "00 000 000.00 E" ' format$ = "00 000 000.00 EUROS" : ' ----> Erreur dans l'affichage ' Cette erreur est provoquée lorsque le texte commence par E ou par e ' et comporte d'autres caractères. ' Peut-être que le système considère qu'il s'agit de l'opérateur de ' l'exponentiation. xstr$ = format$ result% = dll_call3("print_format", adr(montant), adr(format$), adr(xstr$)) print "montant = ";xstr$ next i%
dll_off return
On peut choisir le format de différentes manières sauf celui donné en ligne 16. A+ | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 27 Juin 2012 - 1:35 | |
| | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Arrondir un réel à deux chiffres après la virgule Mer 27 Juin 2012 - 1:47 | |
| - ygeronimi a écrit:
- GRRRRRRR......c'est en mode console
.....enfin bref je ne sais pas comment ca marche....snif
As-tu chargé, entre autre, ‘start-shell.exe’ ? c'est en mode console. Si oui, exécute-le : puis tapes ceci fbc format.bas Le source ‘format.bas’ doit être dans le même répertoire que celui où se trouve ‘start-shell.exe’. | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 27 Juin 2012 - 1:50 | |
| | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Arrondir un réel à deux chiffres après la virgule Mer 27 Juin 2012 - 2:03 | |
| | |
|
| |
Contenu sponsorisé
| Sujet: Re: Arrondir un réel à deux chiffres après la virgule | |
| |
|
| |
| Arrondir un réel à deux chiffres après la virgule | |
|