A documentação para os campos de formatação de fmt.Printf para valores de ponto flutuante afirma que:
"Para valores de ponto flutuante, largura define a largura mínima do campo
e precisão define o número de casas após o decimal, se
apropriado, exceto que para %g/%G ele define o número total de dígitos."
A parte confusa está no uso de "it" na última frase. Na verdade, refere-se a "precisão", não a "largura".
Ao contrário da intuição de que %.9g deveria produzir um total de 9 dígitos significativos, ele na verdade, considera apenas dígitos após o ponto decimal.
Por exemplo, 123456.789 será formatado como 123.4e 03 porque %.9g trunca efetivamente quaisquer zeros à esquerda.
Por outro lado, 0.0000012345 será formatado como 1.2345 e-06 porque %.9g considera todos os dígitos significativos após o ponto decimal.
O campo de largura especifica a largura mínima de toda a string formatada, incluindo o decimal ponto e expoente (se houver).
O campo de precisão, conforme descrito acima, define o número de dígitos significativos após o ponto decimal.
Para %g, o campo de precisão substitui o campo de largura . No entanto, se a string formatada exceder a largura especificada, ela se estenderá além da largura especificada.
Lembre-se de que o exemplo envolve a formatação dos seguintes valores de ponto flutuante usando 0,9g:
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3