2015-12-14 64 views
4

我目前在使用knitr實現所需的舍入數字時遇到了問題。這個問題發生在最終四捨五入數字結尾爲零的數字上。一個例子是14.04,我想在小數點後1位舍入到14.0。問題是knitrlatex作爲輸出給出14沒有0作爲小數位。Knitr:內嵌文本的尾隨零

我會假設有某種尾隨零選項,但我找不到它。有任何想法嗎?貝婁是這個問題的一個簡短的最小工作示例。編輯:雖然看第一個答案(感謝Ben的快速回復),我意識到我在這裏有其他問題。雖然數字格式爲字符串的解決方案避開了主要問題,但它們不會解決同樣的問題,當它發生在使用科學記數法格式化的「大」數字上時。

我會給出第二個例子來說明這一點:比如說這個數字是100,400,000。使用options(digits=2)產生的輸出變爲10^8,我更喜歡1.04 x 10^8。下面的例子。

\documentclass[12pt]{article} 
\begin{document} 

<<>>= 
library(knitr) 
options(digits=2) 
@ 
Number 100,400,000 

\Sexpr{100400000} 

\end{document} 
+0

不正是你要的,但它是值得在這個問題上http://stackoverflow.com/q/5812493/134830 –

+0

關於你的編輯閱讀有關格式化數字功能:也不正是你要求的,但是'sprintf(「%1.3e」,100400000)'給出了'1.004e + 08'呢?你應該閱讀'?sprintf'。 –

回答

2

我覺得this答案是:使用sprintf()

\documentclass[12pt]{article} 
\begin{document} 

<<>>= 
library(knitr) 
options(digits=1) 
x <- 14.0417 
@ 


Full number = \Sexpr{x} 

Number of issue \Sexpr{sprintf("%.1f",x)} 
\end{document} 

Output

+0

感謝您的快速回復。我已經添加了一些上述問題的進一步解釋,我只有在閱讀完解決方案後才意識到這一點。 – pmgurman