输入货币格式的数字

输入货币格式的数字

在排版印度货币(例如 100000)时,逗号 , 先放在三位数后面,然后每两位数后面再加一个 - 1,00,000 - 我们该如何在 latex 中做到这一点?我需要将卢比利润格式化为 xx,xx,xx,xxx/--

\documentclass[10pt]{book}


\begin{document}

\begin{table}[!htb]
    \caption{ Profit}
     \begin{minipage}[t]{.5\linewidth}
      \caption{}
       \centering
        \begin{tabular}{ll}
\hline

\multicolumn{2}{c}{\textsc{profit earned}}\\

\hline

Apr 2018    &   70263.78\\
May 2018    &   33759.19\\
Jun 2018    &   39554.66\\
Jul 2018    &   51529.42\\
Aug 2018    &   46292.94\\
Sep 2018    &   32186.44\\
Oct 2018    &   42185.60\\
Nov 2018    &   31372.17\\
Dec 2018    &   12853.60\\
Jan 2019    &   2602.42\\
Feb 2019    &   33776.46\\
Mar 2019    &   318773.33\\
Apr 2019    &   0.00\\
May 2019    &   0.00\\
Jun 2019    &   0.00\\
Jul 2019    &   17455.88\\

\hline

\end{tabular}
    \end{minipage}%
     \begin{minipage}[t]{.5\linewidth}
      \centering
       \caption{}
        \begin{tabular}{ll}
\hline 

\multicolumn{2}{c}{\textsc{profit distributed}}\\

\hline

diqa    &   20150\\
dqacv   &   47164\\
cqahv   &   188582\\
cqava   &   75433\\
cqavl   &   66004\\
Reserve &   48346\\

\hline

\end{tabular}

    \end{minipage}

\end{table}

\end{document}

在此处输入图片描述


编辑:表格内部的数字未对齐 - 但是在正常段落中使用宏是完美的 - 为什么这样?

在此处输入图片描述

\subsection*{Fixed Deposit} 
\begin{tabular}{lS}
\hline


Fixed Deposit                           &   \indiancurrency{2264812}\\
\hline
\\
\multicolumn{2}{l}{{Dt of deposit}}\\ 
\hline\\
06 Mar 2018 &   \indiancurrency{1500000}\\
%\multicolumn{2}{l}{{Dt of deposit  }}\\
01 Nov 2016 &   \indiancurrency{764812}\\

\hline
\end{tabular}

答案1

这里是一个完全可扩展的实现expl3。金额可以带有小数部分或没有小数部分;无论哪种情况,/都会附加小数部分并显示小数部分,至少有两位小数(但如果小数部分为零,则使用破折号)。

其思路是先在可能的小数点处进行拆分,然后处理整数部分。如果小于 1000,则生成数字;否则,将最后三位数字分离,并按对处理剩余数字({}如果数字为奇数,则在前面添加)。然后添加逗号并传递最后三位数字。

对于附加小数部分/,则当传递短划线时,检查该部分是否缺失或为零;否则传递小数部分,如果它是一位数字,则传递尾随 0。

\documentclass{article}
\usepackage{xparse}

\ExplSyntaxOn
\NewExpandableDocumentCommand{\indiancurrency}{m}
 {
  \bibra_format_number:w #1 .. \q_stop
 }

\cs_new:Npn \bibra_format_number:w #1 . #2 . #3 \q_stop
 {
  \bibra_format_number:n { #1 }
  \tl_if_empty:nTF { #2 }
   { / --- }
   { / \__bibra_format_decimal:n { #2 } }
 }

\cs_new:Npn \__bibra_format_decimal:n #1
 {
  \int_compare:nTF { #1 = 0 }
   { --- }
   { #1 \int_compare:nT { \tl_count:n { #1 } = 1 } { 0 } }
 }

\cs_new:Npn \bibra_format_number:n #1
 {
  \tl_if_empty:nTF { #1 }
   { 0 }
   { \__bibra_format_integral:n { #1 } }
 }

\cs_new:Npn \__bibra_format_integral:n #1
 {
  \int_compare:nTF { #1 < 1000 }
   { #1 }
   {
    \__bibra_format_thousands:e { \tl_range:nnn { #1 } { 1 } { -4 } }
    ,
    \tl_range:nnn { #1 } { -3 } { -1 }
   }
 }

\cs_new:Npn \__bibra_format_thousands:n #1
 {
  \int_if_odd:nTF { \tl_count:n { #1 } }
   {
    \__bibra_format_comma:nn {}#1 \q_nil \q_stop
   }
   {
    \__bibra_format_comma:nn  #1 \q_nil \q_stop
   }
 }
\cs_generate_variant:Nn \__bibra_format_thousands:n { e }

\cs_new:Npn \__bibra_format_comma:nn #1 #2
 {
  #1 #2 \__bibra_format_comma_again:nn
 }
\cs_new:Npn \__bibra_format_comma_again:nn #1 #2
 {
  \cs_if_eq:NNF  #1 \q_nil
   {
    , #1 #2 \__bibra_format_comma_again:nn
   }
 }

\ExplSyntaxOff

\begin{document}

\indiancurrency{.34}

\indiancurrency{.3}

\indiancurrency{12}

\indiancurrency{12.3}

\indiancurrency{12.0}

\indiancurrency{12.34}

\indiancurrency{1234.56}

\indiancurrency{12345.67}

\indiancurrency{123456.78}

\indiancurrency{1234567.89}

\indiancurrency{12345678.90}

\end{document}

在此处输入图片描述

相关内容