Java 具有舍入值的大十进制转换
我有一个双重值,例如Java 具有舍入值的大十进制转换,java,bigdecimal,Java,Bigdecimal,我有一个双重值,例如 Double doubleValue=0.0001; 尝试打印时,我得到了一个输出,即1.0E-4 所以我试着用BigDecimal来表示这个值 BigDecimal.valueOf(doubleValue)最终输出为“0.00010” 有人能告诉我如何将舍入值设置为“0.0001”(1之后没有0的结束轨迹)您可以尝试以下类似的代码 Double doubleValue=0.0001; DecimalFormat f = new DecimalFormat("##
Double doubleValue=0.0001;
尝试打印时,我得到了一个输出,即1.0E-4
所以我试着用BigDecimal来表示这个值
BigDecimal.valueOf(doubleValue)
最终输出为“0.00010”
有人能告诉我如何将舍入值设置为“0.0001”(1之后没有0的结束轨迹)您可以尝试以下类似的代码
Double doubleValue=0.0001;
DecimalFormat f = new DecimalFormat("##.0000");
String formattedValue = f.format(doubleValue);
BigDecimal bigDecimalValue = new BigDecimal(formattedValue);
bigDecimalValue.stripTrailingZeros();
希望这有帮助您是否使用println打印?您应该使用printf格式化输出
Double d = 0.000100;
System.out.printf("%.4f",d);
下面将打印“0.0001”
希望这有帮助 对于0.0001,其可能的重复项舍入为0,但如果输入为0.01,则将输出返回为0。0100@Kumar是的,那是真的。我以为你想保留到小数点后4位Sam sry因为没有说清楚。。。。我需要的精度最大为4。。值没有0结尾。@Kumar你试过我更新的答案了吗?它应该完成这项工作——最大精度为4,值的末端轨迹为0