我正在尝试将字符串转换为double。字符串中有加号,在解析后的字符串中不会返回。
String s = "+12.350";
Double parsedString = Double.parseDouble(s);
输出
12.350
如果字符串中包含“ - ”,则可以正常工作。
答案 0 :(得分:1)
您可以使用DecimalFormat
DecimalFormat fmt = new DecimalFormat("+#,###0.000;-#");
String s = "+12.350";
Double parsedString = Double.parseDouble(s);
System.out.println(fmt.format(parsedString)); // +12.350
s = "-12.350";
parsedString = Double.parseDouble(s);
System.out.println(fmt.format(parsedString)); // -12.350
<强> Java IdeOne example 强>
答案 1 :(得分:0)
是的,积极的双打将永远不会有加号前面。如果字符串有一个减号,那么double也会带有减号,就像你写这个号码时的传统一样(即你写的是-4.5而不是+4.5)。如果你想要加号,你必须把它作为一个字符串添加到开头:
\documentclass{article}
\usepackage{longtable}
\usepackage{multirow}
\begin{document}
See Table~\ref{tab:complicated} for the main results of this paper.
\begin{center}
\begin{minipage}[c]{0.5\textwidth}
<<results = "asis", echo=FALSE>>=
library(compareGroups)
tab <- compareGroups(vs ~ . , data = mtcars)
tab <- createTable(tab)
colnames(tab$descr)[3] <- "P value"
export2latex(tab, caption="Characteristics of the patients at baseline$^*$.",
label="tab:complicated"
)
@
{\footnotesize $^*$A two-sided $t$-test was used to calculate the $p$ values.}
\end{minipage}
\end{center}
\end{document}
但是,此代码无论如何都不应该编译,因为System.out.println((parsedString > 0) ? "+" : "" + parsedString);
返回一个double,而不是String,因此{I} {}不会起作用,因为你试图将一个双精度变成一个String。