首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将Java Double格式设置为7个字符

将Java Double格式设置为7个字符
EN

Stack Overflow用户
提问于 2013-03-05 15:05:24
回答 3查看 112关注 0票数 0

我有很多Java替身。为了在图形用户界面上正确显示,它们的长度只能是7个字符,包括-negative符号和.period

所以我们假设是这样的:

代码语言:javascript
复制
12345.7890
1.34567890
-23.567890

我想要

代码语言:javascript
复制
12345.7
1.34567
-23.567

在极少数情况下,它会在小数点前超过7个字符,只需保留一位小数即可。四舍五入的优先选择。

我并不精通Java中所有的字符串/双精度操作来有效地完成这项工作。

EN

回答 3

Stack Overflow用户

发布于 2013-03-05 15:20:37

试一试

代码语言:javascript
复制
    double d = -23.5678900;
    int precision = d < 0 ? 5 : 6;
    BigDecimal bd = new BigDecimal(d, new MathContext(precision));

它还提供四舍五入。也许添加一个溢出检查是有意义的

代码语言:javascript
复制
    if (d > 9999999 | d < -999999) {
        System.out.println("#######");
    } 
票数 4
EN

Stack Overflow用户

发布于 2013-03-05 15:25:16

如果您只想显示,请使用此方法...

代码语言:javascript
复制
 Double d = -1.151266662625;
    String str = d.toString();
    String result = Str.substring(0,7);

if(result.contains("."){
// it is according to your need
}else{
// iF dot is not present do what ever you want to do. Either again truncte the string upto 5 place and add ".0" in end of the string

}
票数 1
EN

Stack Overflow用户

发布于 2013-03-05 16:32:12

标准的方法是使用DecimalFormat

代码语言:javascript
复制
Double d = 12345.7890d;

NumberFormat decimalFormat = new DecimalFormat("-#####.##");

System.out.println(decimalFormat.format(d));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15217759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档