我只想删除包含 .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对吗?)
我觉得我的问题有点混乱...... 以下是我的澄清:我只想向用户显示一系列浮点数。如果数字的小数部分为零,则仅显示整数部分,否则按原样显示数字。我希望现在很清楚......
答案 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>
答案 3 :(得分:1)
答案 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)
输入 2000.43,结果 = 2,000.43
输入 2000.00,结果 = 2,000
fun Double.FormattedAmount(): String {
val otherSymbols = DecimalFormatSymbols(Locale.US)
val decimalFormat = DecimalFormat("#,###,###.##", otherSymbols)
return decimalFormat.format(this).toString()
}