Il y a un certain nombre de paquets destinés à faire des calculs : calc, xlop, etc. Mais aucun ne me permet d'arriver au résultat que j'escompte (mais j'ai un lourd passif avec les maths…).

Ce que j'aimerais avoir :

« Si une pomme vaut <valA> euro, alors on devrait en avoir consommé <val> ».

J'ai trouvé un exemple avec calc, que j'ai bricolé de telle façon que je n'obtiens rien :

Ouvrir dans l'éditeur Overleaf
\newcounter{2} % vA : prix d'une pomme

\newcounter{8} % vB : nb de pommes mangées

\newcounter{?} % vC : prix total des pommes

\setcounter{vC}{\value{vA} x \value{vB}}

Posée 29 Jui '20, 16:36

fred02840's gravatar image

fred02840
4.2k30164189
Taux d'acceptation : 16%

Modifiée 30 Jui '20, 12:19

Pathe's gravatar image

Pathe ♦♦
7.5k42203251

Pour faire fonctionner votre code \documentclass{article} \begin{document} \newcounter{vA} \setcounter{vA}{2} % vA : prix d'une pomme \newcounter{vB} \setcounter{vB}{8} % vB : nb de pommes mangées \newcounter{vC} % vC : prix total des pommes \setcounter{vC}{\numexpr\value{vA}*\value{vB}} \thevC \end{document}

(29 Jui '20, 19:22) samcarter samcarter's gravatar image

Je recommande le package xfp :

Ouvrir dans l'éditeur Overleaf
\documentclass[french]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[a4paper]{geometry}
\usepackage{xfp}
\usepackage{babel}
\usepackage{eurosym}
%
\newcommand{\prixtotalpommes}{\fpeval{\prixpomme*\nombrepommes}}
%
\begin{document}
\newcommand{\prixpomme}{2}
\newcommand{\nombrepommes}{8}
%
J'ai achété \nombrepommes{} pommes, qui coûtent \EUR{\prixpomme}
l'unité. Ça m'a coûté \EUR{\prixtotalpommes}.
\end{document}
Lien permanent

Publiée 29 Jui '20, 20:51

denis's gravatar image

denis ♦♦
7.3k1510
Taux d'acceptation : 53%

Sans charger de paquet supplémentaire, mais avec luatex :

Ouvrir dans l'éditeur Overleaf
\documentclass[12pt]{article}
\usepackage{polyglossia}
\setdefaultlanguage{french}

\newcommand{\Scoubidou}[2]{J’ai mangé %
   #2{}~pommes à #1{}~euros pièce, soit %
   \directlua{tex.print(#1*#2)}~euros}
\begin{document}

\Scoubidou{0.5}{4}

\Scoubidou{0.25}{9}
\end{document}

Il y a toutefois le problème des virgules, que je ne sais pas régler. J’ai compilé sur une vieille version de TeX Live. Avec une nouvelle version intégrant lua 5.3 (intégré dans LuaTeX en 2019), il faut une fonction intermédaire. Voici les réponses sur TeX S.E. :

Lien permanent

Publiée 29 Jui '20, 20:40

sztruks's gravatar image

sztruks
3681413
Taux d'acceptation : 25%

Modifiée 30 Jui '20, 12:21

Pathe's gravatar image

Pathe ♦♦
7.5k42203251

Votre réponse
(dés)activer l'aperçu

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.