Un problème simple que je ne peux pas comprendre ...
Comment imprimer un caractère "%" dans un printf code> string? Le code ci-dessous l'imprime, mais donne également une erreur «conversion invalide». P> 0000 HRS => 3125.19 898.02 28.7%
6 Réponses :
Vous utiliseriez %%, pas \% (de Man Printf ) p>
"Man Printf" vous dit-il vraiment la fonction Perl de votre système? Sur le mien, cela ne raconte que le programme de ligne de commande. Je peux obtenir la fonction c avec "homme 3 printf"; Si je veux lire sur la fonction Perl, j'utilise "Perldoc -f Printf"
Au moins, on dirait que nous sommes tous d'accord sur la réponse.
@Rob Kennedy: "Perldoc -f printf" ne me donne aucun détail mais me fait plutôt référence à Sprintf. "Perldoc -f Sprintf" me donne en effet tous les détails dont j'ai besoin, un peu comme "homme printf". "Man 3 printf" Otoh me donne la page d'homme pour une bibliothèque OCAML. C'est sur un récent Kubuntu (avec OCAML installé évidemment!)
au lieu de \% d'utilisation %% :) p>
Utilisez %% pour imprimer un seul%
printf "\t\t".$hour."00 HRS\t=>\t%.2f\t%.2f\t%.1f%%\n", $total, $max15, ($max15/$total*100);
%% pour un seul% p>
Sur le recul, il y avait une alternative brute qui aurait fait la même chose.
Imprimez le symbole '%' en tant que chaîne: P>
printf "\t\t".$hour."00 HRS\t=>\t%.2f\t%.2f\t%.1f%s\n", $total, $max15, ($max15/$total*100), "%";