我的百分比被默认的java.text.MessageFormat函数截断,如何格式化百分比而不会丢失精度?
例:
String expectedResult = "12.5%";
double fraction = 0.125;
String actualResult = MessageFormat.format("{0,number,percent}", fraction);
assert expectedResult.equals(actualResult) : actualResult +" should be formatted as "+expectedResult;
Run Code Online (Sandbox Code Playgroud) 使用以下代码:
BigDecimal x = new BigDecimal("34.5678");
BigDecimal a = x.movePointRight(3);
BigDecimal b = x.scaleByPowerOfTen(3);
BigDecimal c = x.movePointRight(-3);
BigDecimal d = x.scaleByPowerOfTen(-3);
Run Code Online (Sandbox Code Playgroud)
a和b均为34567.8,c和d均为0.0345678.
a.scale()并且b.scale都是1 c.scale()和d.scale()都是7.
这两种方法在什么情况下产生不同的结果?
在java中,如何将百分比String转换为BigDecimal?
谢谢
String percentage = "10%";
BigDecimal d ; // I want to get 0.1
Run Code Online (Sandbox Code Playgroud)