【问题标题】:Get minus (-)double value upto 6 point [duplicate]获得最多 6 点的减 (-) 双精度值 [重复]
【发布时间】:2012-09-10 07:00:19
【问题描述】:

可能重复:
Using double up to two decimal places

嗨,我想将双精度值转换为 6 点,例如如果值为

  -1.00005522000

应该转换成

  -1.000055

我知道有很多解决方案,但我仍然无法获得价值

如果我使用像

这样的值
  : -1.79769313486231E308

结果值变成

  -9.22337203668547

我用过类似的参考

http://www.roseindia.net/java/beginners/RoundTwoDecimalPlaces.shtml

How to print upto two decimal places in java using string builder?

Using double up to two decimal places

但没有得到解决方案,所以请任何人可以帮助我?

【问题讨论】:

  • 拒绝第一个链接做得很好,但第三个包含答案。

标签: java android


【解决方案1】:

使用十进制格式。

DecimalFormat df = new DecimalFormat("#.######");
df.format(1.00005522000);

更多信息请点击here

【讨论】:

  • DecimalFormat df = new DecimalFormat("#.######"); txtAlt.setText(df.format(getInfo.getDoubleExtra("alt", 0)));但仍得到一十二月9日至10日:36:44.199:I /的System.out(3611):双值是:-179769313486231000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 跨度>
【解决方案2】:
double d = 1.00005522000;
String result = String.format("%.6f", d);

【讨论】:

  • 我也用过这种方式但不知道还是没有得到价值
  • 您想将您的双精度值格式化为字符串形式的 6 个小数点,还是您想要一个作为舍入另一个双精度值的结果的双精度值?如果你想要后者,那么你应该使用BigDecimal 之类的东西。 double 通常不能准确地表示任何特定的小数。 (以 10 为底的数字通常不会以 2 为底。)
【解决方案3】:
string str=1.00005522000;
sting[] newstr=str.split(".");
newstr[0];//contains 1
newstr[1];//contains 00005522000
newstr[1].substring[0,5];//it contains  6 numbers

【讨论】:

  • OP 想要从双精度转换,而不是字符串。没有答案。
猜你喜欢
  • 2017-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多