bigdecimal相关内容
我正在使用 BigDecimal 来获取一些价格值。要求是这样的,无论我们从数据库获取什么值,显示的值应该有2个小数点。 例如: 取值为1 - 应显示为1.00 取值为1.7823 - 应显示为1.78 我正在使用 setScale(2,BigDecimal.ROUND_HALF_UP)但仍有一些地方,如果来自DB的数据是一个整体数字然后显示相同!! 我的意思是如果数
..
我有一个 XSD ,要求我使用BigDecimal作为lat / lon。我目前将lat / lon作为双精度,并将它们转换为BigDecimal,但我只需要使用大约12个精度位置。我无法弄清楚如何设置它。任何人都可以帮我吗? 解决方案 你可以使用 setScale()例如 double d = ... BigDecimal db = new BigDecimal(d).set
..
如何获得BigDecimal变量的最大可能值? (最好是以编程方式,但硬编码也可以) 编辑 好的,刚才意识到没有这样的东西因为BigDecimal是任意精度。所以我最终得到了这个,这对我的目的来说足够好了: BigDecimal my = BigDecimal.valueOf(Double.MAX_VALUE) 解决方案 它是一个任意的精度类,它会随着你的计算机内存不
..
最近我尝试了解 java.math.MathContext 的使用,但未能正确理解。它是否用于 java.math.BigDecimal 中的舍入。如果是,为什么不围绕十进制数字,甚至是尾数部分。 从API文档中,我发现它遵循 ANSI X3.274-1996 和 ANSI X3.274-1996 / AM 1-2000 规格,但我没有让他们在线阅读。 如果您对此有任何疑问,请与我们联
..
我必须将德语区域设置格式化的String转换为BigDecimal。但是,我正在努力寻找最佳解决方案。 以下代码显示了我的问题: String numberString =“2.105,88”; NumberFormat nf = NumberFormat.getInstance(Locale.GERMAN); try { Number parsed = nf.pars
..
我在Java中有以下代码; BigDecimal price; //在其他地方分配 if(price.compareTo(new BigDecimal(“0.00”))== 0){ return true; } 写if条件的最佳方法是什么? 解决方案 使用 compareTo(BigDecimal.ZERO) 而不是 BigDecimal.ZERO
..
考虑到除食品外的所有商品均适用10%的税。此外,进口商品还需缴纳5%的附加税。 如果音乐CD的费用是12.49。该项目的税金为1.499。 如果进口瓶装香水的成本是47.50,那么该项目的税金将为7.125 有一项政策规定征税一个项目应四舍五入到最接近的0.05。因此,1.499应四舍五入为1.5,7.125应四舍五入为7.25。 上述舍入要求可以使用逻辑来实现: (f
..
我正在尝试实现一个新的等级舍入到BigDecimal类,我得到一个可能的错误,我可能做错了。下面的代码暴露了我的问题: public static void main(String [] args)抛出IOException { BigDecimal valDouble = new BigDecimal(0.35); valDouble = valDouble.setScale(1,
..
最近我问哪个是最好的Swing组件来绑定到BigDecimal变量(具有一些特定的编辑属性)。事实证明,没有一个标准的Swing组件完全适合我,也没有找到我发现的第三方Swing组件库。所以我决定创建自己的Swing组件。 组件描述: 我想扩展 JFormattedTextField ,因此我的新组件可以轻松绑定到 JTable (无需编码两次)。 在组件上调用getValue(
..
是否有估算 BigDecimal 消耗的内存量的准则? 寻找与这些类似的内容估算字符串内存使用情况的准则。 解决方案 如果你看看BigDecimal源代码中的字段: BigDecimal: long intCompact +8 bytes int precision +4 bytes int scale +4 bytes String stringCache +
..
这是不是关于如何比较两个的BigDecimal 对象的问题 - 我知道,你可以使用的compareTo 代替等于这样做,因为等于记录为: 不像的compareTo,这种方法仅考虑它们是否在值和标度相等的两个BigDecimal对象相等(当用这种方法比较由此2.0不等于2.00)。 问题是:为什么等于是以这种看似违反直觉的方式指定的?也就是说,为什么重要能够区分2.0和2.00?
..
Java的 BigDecimal 怎么会这么痛苦? 双d = 13.3D; BigDecimal bd1 = new BigDecimal(d); BigDecimal bd2 = new BigDecimal(String.valueOf(d)); System.out.println(“结果1:”+ bd1.toString()); System.out.pr
..
运行这个简单的程序: public static void main(final String ... args) { System.out.println(BigDecimal.ZERO.scale()); System.out.println(new BigDecimal(“0”)。scale()); System.out.println(new BigDecimal(“0
..
我知道以下行为是一个老问题,但我仍然不明白。 System.out.println (0.1 + 0.1 + 0.1); 或者即使我使用 BigDecimal System.out.println(new BigDecimal(0.1).doubleValue() + new BigDecimal(0.1).doubleValue( ) + new Bi
..
我的代码示例: import java.math。*; 公共类x { public static void main(String [] args) { BigDecimal a = new BigDecimal(“1”); BigDecimal b = new BigDecimal(“3”); BigDecimal c = a.divide(b,BigDecima
..
我正试图弄清楚如何将货币金额向上舍入到最接近的5美分。以下显示了我的预期结果 1.03 => 1.05 1.051 => 1.10 1.05 => 1.05 1.900001 => 1.10 我需要结果的精度为2(如上所示)。 更新 按照以下建议,我能做的最好的就是这个 BigDecimal amount = new BigDec
..
我想 java。 math.BigDecimal 应该是The Answer™需要使用十进制数字执行无限精度算术。 请考虑以下代码段: import java.math.BigDecimal; // ... final BigDecimal one = BigDecimal.ONE; final BigDecimal three = BigDecimal.valueO
..
我为生活编写货币交易应用程序,所以我必须使用货币值(遗憾的是,Java仍然没有十进制浮动类型,并且没有任何东西可以支持任意精度的货币计算)。 “使用BigDecimal!” - 你可能会说。我做。但是现在我有一些代码,其中性能 是一个问题,BigDecimal比 double 原语慢1000倍(!)。 计算非常简单:系统做的是多次计算 a =(1 / b)* c (其中 a , b 和 c
..
我有这个字符串:10,692,467,440,017.120(这是一个金额)。 我想将它解析为BigDecimal。 问题是我已经尝试了DecimalFormat和NumbeFormat都是徒劳的。 任何帮助? 解决方案 试试这个 //创建一个符合您要求的DecimalFormat DecimalFormatSymbols symbols = new DecimalF
..
我需要以下结果 100.12 - > 100.00 100.44 - > 100.00 100.50 - > 101.00 100.75 - > 101.00 .round()或 .setScale()?我该怎么做? 解决方案 你可以使用 setScale()将小数位数减少到零。假设值保持要舍入的值: BigDecimal sca
..