将值截断为小数点后两位

将值截断为小数点后两位

假设你想打印带有 2 位小数的 pi。以下代码不起作用

$\sage{"%0.2f"%pi}$

应该用什么来代替?

答案1

DJP 的回答很好;我要补充的是,piSage 中的“ ”是不是一个浮点数;它是一个代表实数 pi 的 (Sage/Python) 对象。

您没有描述错误,但我认为问题在于 LaTeX 将 解释%为注释字符。有一种方法可以使用您的字符串格式化方法,但在 Sage 中获取十进制近似值的惯用方法是使用该.n()方法。以下是一些示例:

$\sage{pi.n()}$

$\sage{pi.n(10)}$返回近似值 10准确度

$\sage{pi.n(digits=10)}$返回精确到 10 位有效数字的近似值

$\sage{pi.n(digits=10000)}$如果你想用数字填满几屏

如果您使用 Sage,您确实应该习惯于.n()在各种事物上使用。打开工作表SageMathCloud并在诸如、、、、pi等事物上尝试它。也可以在 psage-support Google 群组上随意提问] (sqrt(5)elog(123)https://groups.google.com/forum/#!forum/sage-support)。

答案2

尝试这个:

\documentclass{article}
\usepackage{sagetex}
\begin{document}
\noindent Print $\pi$ as a number: $\sage{pi.n(digits=3)}$\\
Print $\pi$ as a string: \sagestr{str(pi.n(digits=3))}
\end{document}

以下是 Sagemath Cloud 中的输出: 在此处输入图片描述

正如我提到的这里我对数字和使用存在一些问题sage,不太理解。sagestr对我来说使用效果更好。

答案3

这有帮助吗?

\documentclass[tikz,border=10pt]{standalone}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}

\pgfmathsetmacro \pi {pi}

\node at (0,0) {\pgfmathprintnumber[fixed,precision=2]{\pi}};
\node at (0,-1) {\pgfmathprintnumber[fixed,precision=4]{\pi}};
\node at (0,-2) {\pgfmathprintnumber[fixed,precision=6]{\pi}};

\end{tikzpicture}
\end{document} 

在此处输入图片描述

相关内容