1

我对此进行了一些搜索,我发现它BigDecimal有一个我们可以传递String给它的构造函数,它会为我们转换它。但就我而言,我所拥有的是一个java.lang.CharSequence,我需要的是BigDecimal

进行这种转换的正确方法是什么?

4

5 回答 5

9
new BigDecimal(myCharSeq.toString())
于 2013-04-24T16:07:11.203 回答
1

使用 CharSequence 接口的 .toString 方法

我已经纠正了我自己实际上CharSequence是一个接口,它有自己的 toString() 方法。

toString(); -- 返回对象的字符串表示形式。

参考 CharSequnce 接口的官方文档http://docs.oracle.com/javase/6/docs/api/java/lang/CharSequence.html

BigDecimal bigDecimal = new BigDecimal(charSeq.toString());
于 2013-04-24T16:15:00.733 回答
1

我会CharSequence.toString与您提到的构造函数一起使用。toString文档:

以与此序列相同的顺序返回包含此序列中字符的字符串。字符串的长度就是这个序列的长度。

这变成:

new BigDecimal(mySequence.toString());
于 2013-04-24T16:07:41.627 回答
1

呼吁toString()CharSequence建立BigDecimal它。Javadoc 是您的朋友。

于 2013-04-24T16:07:44.920 回答
-1

像这样

StringBuilder sb = new StringBuilder(charSequence.length());
sb.append(charSequence);
BigDecimal bigDecimal = new BigDecimal(sb.toString());

这可以保护您,以防 toString() 的 charSequence 具体类实现出现问题。CharSequence 是一个可以由用户编写的具体类支持的接口。

于 2013-04-24T16:07:32.907 回答