如何从java中包含.0的浮点数中删除小数部分

时间:2012-05-08 10:11:48

标签: java android

我只想删除包含 .0 的浮点数的小数部分。所有其他数字都可以接受.. 例如:

  I/P: 1.0, 2.2, 88.0, 3.56666, 4.1, 45.00 , 99.560
  O/P: 1 ,  2.2, 88,   3.567,   4.1, 45 ,    99.560

是否有任何可用的方法除了将数字与”.0“进行比较并使用子字符串”?

编辑:  我不想要ACTING FLOAT NUMBERs(比如1.0,2.0只不过是1对吗?)

我觉得我的问题有点混乱...... 以下是我的澄清:我只想向用户显示一系列浮点数。如果数字的小数部分为零,则仅显示整数部分,否则按原样显示数字。我希望现在很清楚......

7 个答案:

答案 0 :(得分:10)

尝试:

String.format("%.0f",value);

答案 1 :(得分:8)

您可以使用正则表达式,例如:\\.0+$。如果小数点后只有0,则该正则表达式将产生真。

你能做的另一件事就是这样:

float x = 12.5;
float result = x - (int)x;
if (result != 0)
{
    //If the value of `result` is not equal to zero, then, you have a decimal portion which is not equal to 0.
}

答案 2 :(得分:5)

如果android给你柠檬。不要扔它。

<body unresolved>
  <paper-scroll-header-panel class="fit" condenses keep-condensed-header>
  <paper-toolbar class="tall">
  <paper-icon-button icon="arrow-back"></paper-icon-button>
  <div class="flex"></div>
  <paper-icon-button icon="search"></paper-icon-button>
  <paper-icon-button icon="more-vert"></paper-icon-button>
  <div class="bottom title">iron-list</div>
</paper-toolbar>
<my-request></my-request>
</paper-scroll-header-panel>  

<dom-module id="my-request">
 <style>

    iron-list {
      background-color: var(--paper-grey-200, #eee);

    }

    .item {
      @apply(--layout-horizontal);

      margin: 16px 16px 0 16px;
      padding: 20px;

      border-radius: 8px;
      background-color: white;
      border: 1px solid #ddd;
    }

    .pad {
      padding: 0 16px;
      @apply(--layout-flex);
      @apply(--layout-vertical);
    }

    .primary {
      font-size: 16px;
      font-weight: bold;
    }

    .secondary {
      font-size: 14px;
    }

    .dim {
      color: gray;
      position: absolute;
      right: 70px;
      bottom: 10px;
    }
    .bookmark {
      position: absolute;
      bottom: 10;
      right: 37px;
      color:#D3D3D3;
    }


  </style>
<template>
  <iron-ajax auto id="ajaxPost" url="the-url" handle-as="json" last-response="{{data}}" on-response="handleResponse"></iron-ajax>
  <iron-list items="{{data.items}}" as="item">

  <template>
    <div>
      <div class="item">
        <iron-image style="box-shadow: 0 0 5px rgba(0,0,0,0.50);background-color:gray;width:80px; height:80px;" sizing="cover" src="[[item.path]]" preload></iron-image>
        <div class="pad" style="">
          <div class="primary">{{item.the_title}}</div>
          <div class="secondary">{{item.info}}</div>
          <div class="dist secondary dim"><span>{{item.lat}}</span>,<span>{{item.lng}}</span></div>
        </div>
        <iron-icon class="bookmark" icon="star"></iron-icon>
        <iron-icon icon="more-vert"></iron-icon>
      </div>
    </div>
  </template>
</iron-list>
</template>
</dom-module>

<script>
  (function() {
    Polymer({
      is: 'my-request',
      handleResponse: function() {
        console.log('handleResponse');
      }

    });
  })();
</script>

</body>

More here in doc.

答案 3 :(得分:1)

尝试NumberFormat

答案 4 :(得分:0)

嗯,从技术上讲,显示部分是文本,所以你可以用正则表达式来做。如果数字匹配,则使用组来提取正确的部分。 (我稍后会用解决方案更新帖子。)

或者,你可以简单地去:

if ((int)Math.round(number) == number) {
   System.out.println((int) number)  
} else {
   System.out.println(number)  
}

甚至:

System.out.println((int) Math.round(number) == number ? 
    String.valueOf((int) number) : String.valueOf(number));
小心,String.valueOf()是必需的,因为这不起作用。 System.out.println(double)将始终执行,即下面的内容不起作用:

System.out.println((int)Math.round(number) == number ? (int) number : number);

答案 5 :(得分:0)

我还不能发表评论,所以请注意。 数字值必须是它的两倍才能起作用。

String.format("%.0f", number)

答案 6 :(得分:0)

我已经创建了这个扩展方法。如果金额包含小数(40.01),它将显示小数,否则将仅显示金额(40.00)

  1. 输入 2000.43,结果 = 2,000.43

  2. 输入 2000.00,结果 = 2,000

     fun Double.FormattedAmount(): String {
    
        val otherSymbols = DecimalFormatSymbols(Locale.US)
        val decimalFormat = DecimalFormat("#,###,###.##", otherSymbols)
        return decimalFormat.format(this).toString()
    
     }