草庐IT

bigdecimal

全部标签

java - 如何比较BigDecimal,但大约?

我有这个代码:BigDecimald=...;if(d.compareTo(Expression.PI)==0){//dosomething}其中Expression.PI是四舍五入到小数点后第100位的圆周率。但我不需要比较d是否等于pi最多100位小数,但只说最多20位小数。换句话说,如何判断d是否约等于pi?我试过了Expression.PI.setScale(20,RoundingMode.HALF_UP).compareTo(d.setScale(20,RoundingMode.HALF_UP))==0;和Expression.PI.setScale(20,RoundingM

java - 在android中将字符串转换为bigdecimal

您好,我如何在android中将字符串转换为bigdecimal。这是我的第一个Activity:publicclassViewCartActivityextendsActivity{StringmGrandTotal;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){//TODOAuto-generatedmethodstubsuper.onCreate(savedInstanceState);setContentView(R.layout.viewcartactivity);ListViewmLstView1=(Lis

java - 从 String 转换为 BigDecimal 以对货币进行数学计算

我正在从事一个项目,该项目需要对货币执行一些简单的数学运算,但它以字符串的形式出现。我是Java/Android的新手,所以我正在寻求帮助将String转换为适合此操作的数据类型。起初我认为Float是正确的,但在阅读其他地方并将自己介绍给数字类后,BigDecimal似乎是正确的。我在正确的轨道上吗?此时我只想从初始发票金额中减去付款总额。我觉得这段代码很简单但很笨拙,我怀疑我错过了很多关于使用货币的细微差别。你会怎么做?热烈感谢所有建议!//capturevariablesfromsendingactivityStringinvoiceAmt=getIntent().getStri

android - 使用 intent get 发送 BigDecimal 并在 android 上放置

我正在尝试从我的主应用程序向小部件发送一个bigdecimal数字。目前,它被设置为float并像这样工作:floatCurrent=intent.getFloatExtra("Current",0);例如,有没有办法为BigDecimal做到这一点?BigDecimalcurrent=intent.getBigDecimalExtra("Current",0)?谢谢 最佳答案 由于BigDecimal是可序列化的并且putExtra被许多值类型覆盖,但没有一个是BigDecimal。编译器适合Serializable值版本方法。A

java - BigDecimal 到 Java/Android 上 BigDecimal 的强大功能

我有一个简单的BigDecimal,我想为另一个BigDecimal供电,例如11.11^-1.54。在Java/Android中最巧妙的方法是什么?我不喜欢转换为double的想法,因为它用于医疗应用,所以我希望能有最大的预测。到目前为止,我已经审查了http://commons.apache.org/math/和来自GoogleGuava的数学知识,但一无所获。编辑:整个计算比较复杂,有很多这样的操作。最后我需要尽可能多的精度。 最佳答案 BigDecimal的实用程序类https://github.com/tareknaj/B

android - BigDecimal.doubleValue 不存在?

我正在尝试找到一种简单的方法将double舍入到小数点后两位。我正在使用BigDecimal来解决这个问题,但注意到函数doubleValue的java.math.BigDecimal类不存在。如下函数:funDouble.roundTo2DecimalPlaces()=BigDecimal(this).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue()给我这个编译错误::compileKotlinUsingkotlinincrementalcompilationw:The'-d'optionwithadirectorydestinat

android - BigDecimal.doubleValue 不存在?

我正在尝试找到一种简单的方法将double舍入到小数点后两位。我正在使用BigDecimal来解决这个问题,但注意到函数doubleValue的java.math.BigDecimal类不存在。如下函数:funDouble.roundTo2DecimalPlaces()=BigDecimal(this).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue()给我这个编译错误::compileKotlinUsingkotlinincrementalcompilationw:The'-d'optionwithadirectorydestinat

java - 如何做BigDecimal模数比较

我对如何编写简单的模数比较if语句感到困惑。当x是BigDecimal时,我基本上只想检查x是否是20的倍数。谢谢! 最佳答案 if(x.remainder(newBigDecimal(20)).compareTo(BigDecimal.ZERO)==0){//xisamultipleof20} 关于java-如何做BigDecimal模数比较,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/ques

java - 高效的 BigDecimal 上下舍入到两位小数

在Java中,我试图找到一种有效的方法来根据条件将BigDecimal舍入为两位小数,向上或向下。IFconditiontruethen:12.390--->12.3912.391--->12.4012.395--->12.4012.399--->12.40Ifconditionfalsethen:12.390--->12.3912.391--->12.3912.395--->12.3912.399--->12.39完成此任务的最有效方法是什么? 最佳答案 publicstaticBigDecimalround(BigDecimal

java - 如何将 Double.POSITIVE_INFINITY 转换为 BigDecimal?

我尝试了BigDecimal.valueOf(Double.POSITIVE_INFINITY),但一直收到NumberFormatException谢谢 最佳答案 您不能在BigDecimal中表示无穷大。 关于java-如何将Double.POSITIVE_INFINITY转换为BigDecimal?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/10080084/