将数字四舍五入到百位数

将数字四舍五入到百位数

有人知道怎样让 LaTeX 对数字进行四舍五入2,386以便最终只得到书写吗2,300

我尝试了siunitx及其选项[round-mode=places,round-precision=-2],但没有效果。

答案1

使用siunitxexpl3

\documentclass{article}
\usepackage{xparse,siunitx}

\ExplSyntaxOn
\NewDocumentCommand{\hundreds}{O{}m}
 {
  \num[#1]{\fp_eval:n { trunc(#2,-2) }}
 }
\ExplSyntaxOff

\begin{document}

\hundreds{2348}

\hundreds[group-four-digits,group-separator={,}]{2348}

\sisetup{group-four-digits,group-separator={,}}

\hundreds{2348}

\end{document}

在此处输入图片描述

答案2

这是一个LuaLaTeX解决问题截断最接近 100 的倍数。正数和负数均被截断朝向零。

\ensuremath该包提供的宏用于amsmath使得无需跟踪宏\mytrunc是在 TeX 的数学模式环境之内还是之外使用。

在此处输入图片描述

% !TEX TS-program = lualatex
\documentclass{article}
\usepackage{amsmath}  % for "\ensuremath" macro
% Create a TeX macro that invokes the lua library function 'math.fmod'
\newcommand\mytrunc[1]{%
   \ensuremath{ \directlua{ tex.sprint( #1 - math.fmod(#1,100) ) }}}

\begin{document}
2386 $\to$ \mytrunc{2386}

$-149$ $\to$ \mytrunc{-149}

$-186$ $\to$ \mytrunc{-186}
\end{document}

答案3

将其除以 100,然后将结果乘以 100。

\documentclass{article}
\newcount\mycount
\mycount = 2386
\divide\mycount by 100
\multiply\mycount by 100
\begin{document}
\number\mycount
\end{document}

答案4

\documentclass{article}
\makeatletter
\def\twodec#1{\expandafter\twodecB#1,,,\@nil}
\def\twodecB#1,#2#3#4\@nil{\ifx,#2 #1,000\else#1,#200\fi}
\makeatother
\begin{document}
\twodec{2}\par
\twodec{2,3}\par
\twodec{2,38}\par
\twodec{2,386}
\end{document}

在此处输入图片描述

相关内容