将数字值从 XX.X 格式化为 .XXX java
Posted
技术标签:
【中文标题】将数字值从 XX.X 格式化为 .XXX java【英文标题】:Format number value from XX.X to .XXX java 【发布时间】:2017-02-17 20:10:52 【问题描述】:我从服务器接收到一个以百分比形式读取的值,例如 77.5%。如何仅使用以下方法获得 0.775 的值:
String.format(Locale.getDefault(), formatPattern, floatValue);
我已经咨询了https://docs.oracle.com/javase/tutorial/java/data/numberformat.html,但它似乎并没有涵盖我的情况。
注意:当我们将模式放入配置文件时,我只能使用字符串格式。
【问题讨论】:
您使用的是什么模式,floatValue
是什么,您得到的结果是什么?你期待.775
而不是0.775
?
我们收到的是 77.5,希望它采用 .775 格式。我尝试过的模式是 %1$,.3f
【参考方案1】:
我们可以避免除以 100 而只是将浮点数向左移动两个位置:
double value = java.math.BigDecimal.valueOf(77.5).movePointLeft(2).doubleValue();
【讨论】:
【参考方案2】:试试这个:
String value = "75%";
Double aNumber = (Double.parseDouble(value.replace("%", "")))/100;
【讨论】:
我只能用String.format(Locale.getDefault(), formatPattern, floatValue); @KristyWelsh 没有将值除以 100 的格式。您只能格式化它的值。 这就是我所害怕的。【参考方案3】:这对你有用吗:
String num = "75.5%";
String res = new DecimalFormat("#.000").format(Double.parseDouble(num.substring(0, num.length()-1))/100);
【讨论】:
以上是关于将数字值从 XX.X 格式化为 .XXX java的主要内容,如果未能解决你的问题,请参考以下文章
格式化数据保留两位小数,输入格式为 :xxx,xx,,,,x,,(x为浮点数)