shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script-pt] Formatar string em R$


From: Blau Araujo
Subject: Re: [shell-script-pt] Formatar string em R$
Date: Fri, 25 Mar 2022 23:17:58 -0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0

Como eu disse, depende da localização do seu sistema. Se não estiver com as definições em pt_BR.UTF-8, provavelmente não precisará fazer a troca do ponto pela vírgula na expansão, porque o ponto não causará problemas para o `printf'.

Sobre o seu resultado que você já conseguiu, com vírgulas e pontos trocados, basta um `tr' para resolver:

```
~ $ echo R\$1,234,567.00 | tr ',.' '.,'
R$1.234.567,00
```


Abraço
Blau Araujo
-----------------------------
https://debxp.org
https://blauaraujo.com

Em 25/03/2022 23:06, Dito Ramos escreveu:
Blau Araujo, obrigado pela atenção.
Mas, veja:
arquivo formatareal.sh

#!/bin/bash
var="34522.77"
printf "R$%'.2f\n" ${var//./,}

valor="34522.77"
echo R\$$(numfmt --grouping ${valor//./,})

Resultado do script:

./formatareal.sh
./formatareal.sh: line 3: printf: 34522,77: invalid number
R$0.00
numfmt: invalid suffix in input: ‘34522,77’
R$

Pode ajudar?

Grato.




──────────────────────────────────────────────────────────────────

De: "Blau Araujo"
Enviada: 2022/03/25 19:21:51
Para: shell-script-pt@nongnu.org
Assunto: Re: [shell-script-pt] Formatar string em R$


O printf pode apresentar erros com o uso do ponto como separador de
casas decimais (depende da localidade), então precisa de um pequeno
tratamento:


```
~ $ var=34522.77
~ $ printf "R$%'.2f\n" ${var//./,}
R$34.522,77
```

Só por curiosidade, também podemos usar o `GNU numfmt', com o mesmo
cuidado com o ponto:

```
:~$ valor=34522.77
:~$ echo R\$$(numfmt --grouping ${valor//./,})
R$34.522,77
```

Blau Araujo
-----------------------------
https://debxp.org
https://blauaraujo.com

Em 25/03/2022 18:14, Dito Ramos escreveu:
 > Olá, mestres!
 > Povo sumido.
 > Tenho as seguintes string armazenada em variáveis:
 > valor="34522.77"
 > valor1="34522.7"
 > valor3="0.00"
 > valor4="1000000.7"
 > valor5="1000000.78"
 > valor6="10000000.78"
 > valor7="1000000000.22"
 > Preciso converter esses valores para moeda brasileira, prá ficar assim:
 > 34.522,77
 > 34.522,70
 > 0,00
 > 1.000.000,70
 > 1.000.000,78
 > 10.000.000,78
 > 1.000.000.000,22
 > NOTA: Não preciso converter todos esses valores de uma só vez. Apenas
 > mandei exemplos.
 > Preciso de uma regra geral para converter esses valores em moeda real,
 > colocando pontos nos milhares e trocar o último ponto por vírgula.
 > RESUMINDO: transformar uma variável desse tipo em moeda brasileira.
 > Tentei com os comandos "tr", "sed", "wc", até cheguei numa solução
 > "gambiarrosa". Mas são muitos valores a tratar.
 >
 > Obrigado a todos que puderem ajudar.
 >
 > Dito Ramos
 >
 > _______________________________________________
 > Lista brasileira de usuários de shell script
 > Endereço de e-mail da lista: shell-script-pt@nongnu.org
> Para se inscrever ou desinscrever acesse: https://lists.nongnu.org/mailman/listinfo/shell-script-pt > Para ver os arquivos da lista (mensagens anteriores) e pesquisar nelas, acesse https://lists.nongnu.org/archive/html/shell-script-pt/
 >
> NOTA: A lista anterior, no Yahoo Groups, foi *desativada*. Por favor utilize somente esta.

_______________________________________________
Lista brasileira de usuários de shell script
Endereço de e-mail da lista: shell-script-pt@nongnu.org
Para se inscrever ou desinscrever acesse: https://lists.nongnu.org/mailman/listinfo/shell-script-pt Para ver os arquivos da lista (mensagens anteriores) e pesquisar nelas, acesse https://lists.nongnu.org/archive/html/shell-script-pt/

NOTA: A lista anterior, no Yahoo Groups, foi *desativada*. Por favor utilize somente esta.

_______________________________________________
Lista brasileira de usuários de shell script
Endereço de e-mail da lista: shell-script-pt@nongnu.org
Para se inscrever ou desinscrever acesse: 
https://lists.nongnu.org/mailman/listinfo/shell-script-pt
Para ver os arquivos da lista (mensagens anteriores) e pesquisar nelas, acesse 
https://lists.nongnu.org/archive/html/shell-script-pt/

NOTA: A lista anterior, no Yahoo Groups, foi *desativada*. Por favor utilize 
somente esta.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]