有人知道怎样让 LaTeX 对数字进行四舍五入2,386
以便最终只得到书写吗2,300
?
我尝试了siunitx
及其选项[round-mode=places,round-precision=-2]
,但没有效果。
答案1
使用siunitx
和expl3
。
\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}