Pour suivre les conseils de "maxim_um"
1) Comment peut-on additionner des nombres à virgule en batch ?
2) Comment récupérer un résultat non tronqué après une division ?
![]()
Pour suivre les conseils de "maxim_um"
1) Comment peut-on additionner des nombres à virgule en batch ?
2) Comment récupérer un résultat non tronqué après une division ?
![]()
Salut,
avec du batch hybride par exemple:
"non bien tester "
exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 @echo off :ndef cls echo. set /p "_set=->> " if not defined _set (goto:ndef) for %%: in ("(=^(",")=^)") do (call set _set=%%_set:%%~:%%) for %%: in ("E = %%_set%%","WScript.Echo E") do >>_.Vbs (call echo.%%~:) for /f "" %%: in ('cscript /nologo _.Vbs') do (call set _t=%%:) echo. if defined _t (call echo RESULTAT=[ %%_t:,=.%% ]) del _.vbs 2>nul pause
ou bien avec la commande externe Gawk:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 ((0.25 * 63.23) / (3.25 - 1.23)) / 2 => 3.91274..
exemple basique:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 set v1=2.25 set v2=0.25 gawk "BEGIN{print \"%V1% * %v2% est egal à \"%v1% * %v2%}"
C'est également possible en découpant les nombre en partie entière / partie décimale, aligner les chiffres, effectuer les opérations (simple pour l'addition, plus chaud pour les autres), puis recombiner les résultats. C'est le principe de calcul par virgule fixe, un vieux truc d'accélération des calculs réels lorsque les FPU n'étaient pas toujours présents sur les machines.
Mac LAK.
___________________________________________________
Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.
Sources et composants Delphi sur mon site, L'antre du Lak.
Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.
Rejoignez-nous sur : ► Serveur de fichiers [NAS] ► Le Tableau de bord projets ► Le groupe de travail ICMO
Salut I'm_Here, pourrais-tu expliquer ce bout de code pas à pas parce que je débute et je ne comprends pas tout
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 @echo off :ndef cls echo. set /p "_set=->> " if not defined _set (goto:ndef) for %%: in ("(=^(",")=^)") do (call set _set=%%_set:%%~:%%) for %%: in ("E = %%_set%%","WScript.Echo E") do >>_.Vbs (call echo.%%~:) for /f "" %%: in ('cscript /nologo _.Vbs') do (call set _t=%%:) echo. if defined _t (call echo RESULTAT=[ %%_t:,=.%% ]) del _.vbs 2>nul pause![]()
Enlève le "del _.vbs 2>nul" à la fin, puis regarde le fichier "_.vbs" généré : ce sera sûrement beaucoup plus clair (enfin, si tu connais un peu le VBScript).
Mac LAK.
___________________________________________________
Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.
Sources et composants Delphi sur mon site, L'antre du Lak.
Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.
Rejoignez-nous sur : ► Serveur de fichiers [NAS] ► Le Tableau de bord projets ► Le groupe de travail ICMO
Ouai j'avais juste bougé le "pause" avent le del
C'est juste pour m'améliorer en batch que je voudrais avec des explication détaillées
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 @echo off cls set /p Calcule= echo E = %Calcule% >> __.vbs echo WScript.Echo E >> __.vbs cscript /nologo __.Vbs del __.vbs 2>nul pause![]()
Comme à dit Mac LAK ça sera plus clair si tu visualises le fichier .vbs
le principe est simple, laisser cscript.exe faire les calculs au lieu de cmd.exe
ouai j'ai bien compris j'ai même fait un petit exemple plus simple
Par contre comme je l'ai dit... des petites explications sur ton code seraient les bienvenues ^^
Partager