Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.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 计算大十进制数_Java_Bigdecimal - Fatal编程技术网

Java 计算大十进制数

Java 计算大十进制数,java,bigdecimal,Java,Bigdecimal,有人能告诉我如何在Java中使用大十进制吗? 我创建了一个新的有2个数字的大十进制。 我尝试了很多,搜索了很多,但是我找不到任何可以帮助我的东西。这是我找到的唯一的东西: BigDecimal big = new BigDecimal("987634534563454354321,3412434534534535343214"); 如何生成大的十进制字符串,然后使用数学导入计算这两个字符串的最小值和最大值?由于BigDecimal的构造函数中以逗号分隔的数字,上述代码无效。需要2个单独的Big

有人能告诉我如何在Java中使用大十进制吗? 我创建了一个新的有2个数字的大十进制。 我尝试了很多,搜索了很多,但是我找不到任何可以帮助我的东西。这是我找到的唯一的东西:

BigDecimal big = new BigDecimal("987634534563454354321,3412434534534535343214");

如何生成大的十进制字符串,然后使用数学导入计算这两个字符串的最小值和最大值?

由于
BigDecimal
的构造函数中以逗号分隔的数字,上述代码无效。需要2个单独的
BigDecimal
实例

BigDecimal
值转换为
int
float
double
类型(由
Math.max
Math.min
使用)可能会丢失精度。应该改用这种方法。使用
BigDecimal
的另一个原因是数字可能溢出。在这种情况下,如果
987634563454354321
3412434535343214
大于231-1(
Integer.MAX_值

试试这个

BigDecimal big1 = new BigDecimal("987634534563454354321");
BigDecimal big2 = new BigDecimal("3412434534534535343214");
BigDecimal min = big1.min(big2);
BigDecimal max = big1.max(big2);
让自己熟悉

查看的javadoc。BigDecimal是一个类似字符串的不可变类。一个人也是

BigDecimal c = a.add(b);

a
保持不变。)

您是否查看了
BigDecimal
API?逗号不应该是句点吗?或者是否有一些区域设置可以设置它?是一个很好的教程,因为BigDecimal包含一个数字。如果执行成功,则您所在的区域设置使用逗号作为十进制分隔符。如果我要使用数学导入计算它,该怎么办It’不仅仅是minandmax,我还要计算sin、tan和cos:如果你使用Math.max,你将失去精度。使用
BigDecimal#max
而不是课堂作业。他们告诉我应该使用math import中的一些函数,使用大十进制计算2个数字。我不知道如何计算字符串:你不会这么做的。这些数字对于
Math.min
Math.max
方法来说太大了,输入值甚至在这些方法使用之前就会溢出