![将值截断为小数点后两位](https://linux22.com/image/315083/%E5%B0%86%E5%80%BC%E6%88%AA%E6%96%AD%E4%B8%BA%E5%B0%8F%E6%95%B0%E7%82%B9%E5%90%8E%E4%B8%A4%E4%BD%8D.png)
假设你想打印带有 2 位小数的 pi。以下代码不起作用
$\sage{"%0.2f"%pi}$
应该用什么来代替?
答案1
DJP 的回答很好;我要补充的是,pi
Sage 中的“ ”是不是一个浮点数;它是一个代表实数 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)
e
log(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}
正如我提到的这里我对数字和使用存在一些问题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}