我想為另一個變數分配一個雙精度值,但只分配給它的前 2 個十進制值。假設我在一個變數中有 3.4586748547 值,但我想在另一個變數中保存 3.45。我怎樣才能做到這一點?- 我正在使用 JAVA
uj5u.com熱心網友回復:
使用 BigDecimal ( import java.math.BigDecimal;):
BigDecimal input = new BigDecimal(String.valueOf(3.4586748547d));
double output = input.setScale(2, BigDecimal.ROUND_FLOOR).doubleValue();
System.out.println(output);
您也可以為此目的使用正則運算式,如下所示:
String inputString = String.valueOf(3.4586748547d);
String outputString = inputString.replaceAll("(\\d \\.\\d{2})\\d ", "$1");
System.out.println(outputString);
uj5u.com熱心網友回復:
Java 中的定點型別是BigDecimal.
浮點數只是一個近似值,是 2 的冪之和。3.45或者3.4499999987可能完全相同double。但是可以四舍五入,當以 %.2f 格式列印時會顯示得很好。雖然在求和或相乘時會顯示錯誤。
x = Math.round(x * 100) / 100.0;
很遺憾。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/345002.html
上一篇:在字串中使用變數?[復制]
