FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Empêcher la notation scientifique [RESOLU] Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
Empêcher la notation scientifique [RESOLU] Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Empêcher la notation scientifique [RESOLU] Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Empêcher la notation scientifique [RESOLU] Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Empêcher la notation scientifique [RESOLU] Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Empêcher la notation scientifique [RESOLU] Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Empêcher la notation scientifique [RESOLU] Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Empêcher la notation scientifique [RESOLU] Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Empêcher la notation scientifique [RESOLU] Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Empêcher la notation scientifique [RESOLU] Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Empêcher la notation scientifique [RESOLU] Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Empêcher la notation scientifique [RESOLU] Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Empêcher la notation scientifique [RESOLU] Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Empêcher la notation scientifique [RESOLU] Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Empêcher la notation scientifique [RESOLU] Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le deal à ne pas rater :
Code promo Nike : -25% dès 50€ d’achats sur tout le site Nike
Voir le deal

 

 Empêcher la notation scientifique [RESOLU]

Aller en bas 
5 participants
AuteurMessage
Marc

Marc


Nombre de messages : 2466
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

Empêcher la notation scientifique [RESOLU] Empty
MessageSujet: Empêcher la notation scientifique [RESOLU]   Empêcher la notation scientifique [RESOLU] EmptyLun 12 Mar 2018 - 15:04

Bonjour à tous !

Habituellement, la notation scientifique des grands ou petits nombres est très pratique, mais pour une fois, je n'en veux pas...

Peut-on empêcher Panoramic d'afficher en forme scientifique ?
Empêcher la notation scientifique [RESOLU] 161


Dernière édition par Marc le Dim 18 Mar 2018 - 1:53, édité 1 fois
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Empêcher la notation scientifique [RESOLU] Empty
MessageSujet: re   Empêcher la notation scientifique [RESOLU] EmptyLun 12 Mar 2018 - 15:31

dim a,b$
a = 0.0008
b$=str$(a)

print b$
end
Revenir en haut Aller en bas
Marc

Marc


Nombre de messages : 2466
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

Empêcher la notation scientifique [RESOLU] Empty
MessageSujet: Re: Empêcher la notation scientifique [RESOLU]   Empêcher la notation scientifique [RESOLU] EmptyLun 12 Mar 2018 - 15:59

Salut Yannick !

Merci de ta réponse.
Hélas, ce n'est bon que jusqu'à la 5ème décimale.

Empêcher la notation scientifique [RESOLU] 162


Mon programme travaille et affiche des nombres de 0 à 999999,999999, donc avec 6 décimales au maximum.

Si mon nombre descend en dessous de 0.00001, Panoramic passe en notation scientifique.

Il va falloir ruser... pour avoir un affichage décimal. Je vais le tronquer pour l'afficher en 2 fois !
Revenir en haut Aller en bas
bignono

bignono


Nombre de messages : 1127
Age : 67
Localisation : Val de Marne
Date d'inscription : 13/11/2011

Empêcher la notation scientifique [RESOLU] Empty
MessageSujet: Re: Empêcher la notation scientifique [RESOLU]   Empêcher la notation scientifique [RESOLU] EmptyLun 12 Mar 2018 - 17:50

Bonjour à tous, Smile
Bonjour MARC
voici un moyen simple pour récupérer la partie décimale de n'importe quel nombre:
Code:
dim a
a=0.08
print right_pos$(str$(1+a),2)
a=0.00008
print right_pos$(str$(1+a),2)
a=0.000008
print right_pos$(str$(1+a),2)
a=0.000000008567
print right_pos$(str$(1+a),2)
A + Wink Wink Wink
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Empêcher la notation scientifique [RESOLU] Empty
MessageSujet: re   Empêcher la notation scientifique [RESOLU] EmptyLun 12 Mar 2018 - 18:04

dim a,b$,s1%,s2%,s3%,f$

font_name 0,"Arial"
font_size 0,10
font_bold 0
 
a = 0.00000000000123566666
b$=str$(a)

if instr(b$,"-")>0
   s1%=instr(b$,".")
   s2%=instr(b$,"E")
   s3%=instr(b$,"-")
   f$=mid$(b$,s1%+1,s2%-1-s1%)
   b$="0."+string$(val(right$(b$,len(b$)-s3%))-1,"0")+str$(val(left$(b$,instr(b$,"E")-1))*power(10,len(f$)))
   print b$
else
   print b$ 
end_if

end
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Empêcher la notation scientifique [RESOLU] Empty
MessageSujet: Re: Empêcher la notation scientifique [RESOLU]   Empêcher la notation scientifique [RESOLU] EmptyLun 12 Mar 2018 - 18:15

Tu peux "tricher":
crée une fonction retournant le nombre fromaté. Comme ceci:
Code:
dim v, s$

font_size 0,16
v = 0
v = 0.00008
s$ = format$(v,8)
print s$
end


fnc format$(valeur,ndec%)
  dim_local s$, r$, p%
  s$ = str$(valeur*1000)
  if instr(s$,".")=0 then s$ = s$ + ".0"
  s$ = "0000000" + s$ + "0000000"
  p% = instr(s$,".")
  r$ = left$(s$,p%-4)+"."+mid$(s$,p%-3,3)+mid$(s$,p%+1,len(s$))
  p% = instr(r$,".")
  result left$(r$,p%+8)
end_fnc
La fonction retourne le nombre de décimales voulues.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Marc

Marc


Nombre de messages : 2466
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

Empêcher la notation scientifique [RESOLU] Empty
MessageSujet: Re: Empêcher la notation scientifique [RESOLU]   Empêcher la notation scientifique [RESOLU] EmptyLun 12 Mar 2018 - 20:04

Merci à tous de vos réponses !

Vos idées sont toutes bonnes.

Il me reste à passer à la pratique et choisir une de vos trois propositions.

Encore merci et bonne continuation à tous !

A bientôt !





Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Empêcher la notation scientifique [RESOLU] Empty
MessageSujet: Re: Empêcher la notation scientifique [RESOLU]   Empêcher la notation scientifique [RESOLU] EmptyMar 13 Mar 2018 - 1:39

Vous pouvez utiliser une DLL pour formater la sortie d’un nombre comme le faisait PRINT USING du basic de jadis.

Sur mon webdav, vous trouvez MesDLL.zip qui contient deux dossiers : Trigo et Format.
Ce qui nous intéresse ici est Format qui contient :
format.dll la DLL à utiliser pour formater un nombre.
testFormat.bas un code PANORAMIC montrant comment utiliser la DLL
Format_FreeBasic.txt le code source de la DLL en free Basic (de Jean_Debord, je pense)

@Klaus
Si tu veux bien ajouter Format.dll à l’incontournable KGF.DLL, ça sera plus pratique.

Voici le code de FORMAT.DLL (en free basic)

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
  
  dim as integer p
  dim as string  s
  
  ' Convertir le nombre x en chaine de caracteres
  s = format(x, *format_str)
  
  ' Chercher si la chaine contient une virgule
  p = instr(s, ",")
  
  ' Si oui, la remplacer par un point
  if p > 0 then mid(s, p) = "."
 
  ' Retourner la chaine
  *x_str = s
  
  return 0
end function

end extern

A compiler comme ceci :

Code:

fbc format.bas –dll

Voici un exemple en Panoramic pour utiliser FORMAT.DLL

Code:

rem ============================================================================
rem                       Test de FORMAT.DLL
rem ============================================================================
rem FORMAT.DLL exporte une fonction et une seule pour formater un nombre comme
rem le faisait PRINT USING du BASIC ancien
rem L’appel de la fonction se fait comme suit :
rem  _________________________________________________________________________
rem |                                                                         |
rem | ret% = dll_call3("print_format", adr(nombre), adr(format$), adr(xstr$)) |
rem |_________________________________________________________________________|

rem nombre est le nombre à formater
rem format$ est la chaine de caractères décrivant le format : voir les exemples
rem ci-après :
rem Le résultat de la fonction est retourné dans la variable xstr$ qui doit être
rem initialisée avant l’appel comme ceci : xstr$ = format$
rem ============================================================================
rem Dans la chaine format$ :
rem un zéro (0) indique la position d’un chiffre
rem un point indique la position du point décimal
rem une virgule indique la position d’un espace (voir l’exemple  Tunisian Dinar)
rem un espace donne un espace (utile pour alligner des sorties)
rem autre caractère (comme une étoile en début) donne ce même caratère)
rem un symbole monétaire (ou un texte) à la fin du FORMAT s’affiche comme tel
rem ============================================================================
rem Exemples de FORMAT$
rem
rem format$ = "***000 000.000 $"
rem format$ = "***000000.000***"
rem format$ = "*** 000 000.000 £"
rem format$ = "*** 000 000.000 Dollars"
rem format$ = "000 000 000.000"
rem format$ = "+++ 000 000.000 +++"
rem ============================================================================

dim nombre,format$,i
font_bold 0
for i = 1 to 10
   nombre = rnd(1)/1000000 : format$ = "0.0000000000"  
   print nombre ; " = " + Format_Nombre$(nombre,format$)
next i
print : print
nombre = 0.0000008 : format$ = "0.0000000"
print nombre ; " = " + Format_Nombre$(nombre,format$)
print : print
nombre = 123456.789 : format$ = "*** 000,000.000 TD" : ' <--- Tunisian Dinar
print nombre ; " = " + Format_Nombre$(nombre,format$)

print : print
nombre = 12345678.99 : format$ = " 00 000 000.00 €"
print nombre ; " = " + Format_Nombre$(nombre,format$)

print : print
nombre = 12345678.99 : format$ = " 00 000 000.00 $"
print nombre ; " = " + Format_Nombre$(nombre,format$)

END
rem ============================================================================
' Définition de la fonction Format_Nombre$()
FNC Format_Nombre$(nombre,format$)
   dim_local ret%,xstr$
   dll_on "format.dll"
   xstr$ = format$ : ' initialisation de la chaine du résultat de la fonction
   ret% = dll_call3("print_format", adr(nombre), adr(format$), adr(xstr$))
   result xstr$
   dll_off
END_FNC
rem ============================================================================

Et voici ce que ça donne:


Vous pouvez revivre cette intéressante histoire en cliquant sur ce lien



Post édité à 10:28 pour correction d'une erreur
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Marc

Marc


Nombre de messages : 2466
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

Empêcher la notation scientifique [RESOLU] Empty
MessageSujet: Re: Empêcher la notation scientifique [RESOLU]   Empêcher la notation scientifique [RESOLU] EmptyMer 14 Mar 2018 - 11:19

Merci Papydall !

Merci pour ces renseignements qui sont précieux !

Bonne journée !
Revenir en haut Aller en bas
Contenu sponsorisé





Empêcher la notation scientifique [RESOLU] Empty
MessageSujet: Re: Empêcher la notation scientifique [RESOLU]   Empêcher la notation scientifique [RESOLU] Empty

Revenir en haut Aller en bas
 
Empêcher la notation scientifique [RESOLU]
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Entrer des nombres reels en notation scientifique
» Comment empêcher affichage initial des FORM ?
» Codage de la notation scientifique des nombres réels
» Pouvoir empêcher on_close de quitter
» ON_CLOSE - Empêcher la fermeture d'une form !

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: