Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中保持Bigdecimal的精度?_Java - Fatal编程技术网

如何在Java中保持Bigdecimal的精度?

如何在Java中保持Bigdecimal的精度?,java,Java,我在XSD中使用xs:decimal作为类型,长度为 value="9999999999999999.999999999999999" BigDecimal big = new BigDecimal("0.000000000001"); System.out.println(big); // Actual 1e-12 Expected 0.000000000001 我不能使用toPlainString,因为我希望它是来自javadoc的BigDecimal格式: 公共字符串toPlain

我在XSD中使用xs:decimal作为类型,长度为

value="9999999999999999.999999999999999"

BigDecimal big = new BigDecimal("0.000000000001");
System.out.println(big); // Actual 1e-12 Expected 0.000000000001  
我不能使用toPlainString,因为我希望它是来自javadoc的BigDecimal格式:

公共字符串toPlainString

返回此BigDecimal的字符串表示形式,不带指数字段

将输出:

1E-9
0.000000001

你想要什么?你改变了你的问题,现在这没有意义了。如果需要BigDecimal,请使用big.toPlainString;如果需要不带指数的字符串表示形式,请使用big.toPlainString。我需要值的十进制表示形式。我使用这个bigdecimal对象使用JaxB marshaller将其解析为XSD。我在输出XML中得到指数形式,toPlainString有什么问题?它为您提供字符串中的十进制表示形式。。。
1E-9
0.000000001