家园小助手 发表于 2022-7-22 17:45:01

bigdecimal取整数(bigdecimal保留整数)



                                       
                                        <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-1416119137658217"
   crossorigin="anonymous"></script>
<ins class="adsbygoogle"
   style="display:block"
   data-ad-format="fluid"
   data-ad-layout-key="-ef+6k-30-ac+ty"
   data-ad-client="ca-pub-1416119137658217"
   data-ad-slot="9398439682"></ins>
<script>
   (adsbygoogle = window.adsbygoogle || []).push({});
</script>
                                       
                                        <h2>java怎么设置bigdecimal值</h2><p>关于BigDecimal是如何计算的,我以论坛中一个人的提问帖子为例,来简单的写出BigDecimal的运算方法。题目是:李白无事街上走,提壶去买酒。遇店加一倍,见花喝一斗,五遇花和店,喝光壶中酒,试问李白壶中原有多少斗酒?</p><p>这道题应该是从后往前推,并且要逆运算,最后得出原有酒的体积。</p><p>import java.math.*</p><p>public class Libai {</p><p>public static void main(String args[]){</p><p>BigDecimal volumn = new BigDecimal("0");</p><p>for (int i=0; i<5; i++){</p><p>volumn = volumn.add(new BigDecimal("1"));</p><p>volumn = volumn.divide(new BigDecimal("2"));</p><p>}</p><p>System.out.print(volumn);</p><p>运行结果:</p><p>0.968751、java设置bigdecimal值的方法如下:</p><p>add(BigDecimal)BigDecimal对象中的值相加,然后返回这个对象。 </p><p>subtract(BigDecimal) BigDecimal对象中的值相减,然后返回这个对象。 </p><p>multiply(BigDecimal)  BigDecimal对象中的值相乘,然后返回这个对象。 </p><p>divide(BigDecimal)BigDecimal对象中的值相除,然后返回这个对象。 </p><p>toString()将BigDecimal对象的数值转换成字符串。 </p><p>doubleValue()将BigDecimal对象中的值以双精度数返回。 </p><p>floatValue()将BigDecimal对象中的值以单精度数返回。 </p><p>longValue()将BigDecimal对象中的值以长整数返回。 </p><p>intValue()将BigDecimal对象中的值以整数返回。</p><p>【注意】由于一般数值类型,例如double,不能准确地代表16位有效数以上的数字,在使用BigDecimal时,应用BigDecimal(String)构造器创建对象才有意义。另外,BigDecimal所创建的是对象,我们不能使用传统的+、-、*、/等算术运算符直接对其对象进行数学运算,而必须调用其相对应的方法。方法中的参数也必须是BigDecimal的对象。</p><p>2、Java</p><p>Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。</p><p>Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。BigDecimal loanAmount = new BigDecimal("1111.22");</p><p><img src='https://www.dfrlyy.com/zb_users/upload/2022/02/20220204212246_95748.jpg' alt='bigdecimal取整数'></p><h2>java怎么取实数中的小数部分</h2><p>首先楼上那两位对于普通的使用场景来说基本是正确的。但是在一些需要精确结果的场景中(比如货币金额计算),double就会有问题了,比如:</p><p>(int)1023.99999999999999=1024;</p><p>double n1=0.03;</p><p>double n2=0.02;</p><p>double n3=n1-n2;</p><p>System.out.println(n3);//0.009999999999999998所以如果需要精确安全的操作的话,需要用到这个类:java.math.BigDecimal</p><p>调用它的divideAndRemainder方法来进行计算,该计算可以理解为:进行一次保留余数的除法运算。结果会返回一个BigDecimal类型且长度为2的数组,0下标的元素是该计算的商,1下标的元素是该结果的余数。</p><p>BigDecimal n4=new BigDecimal("1023.99999999999999");</p><p>BigDecimal [] result=n4.divideAndRemainder(BigDecimal.valueOf(1));</p><p>System.out.println(result.toString());//0.99999999999999注意,构造BigDecimal对象的时候我使用的是字符串String类型的“1023.99999999999999</p><p>”,如果直接写1023.99999999999999的话会被认为是double类型的数,然后double类型的该值为1024.0,所以给字符串类型的值可以保证BigDecimal对象接收到的数就准确无误是我们心里想的数。把原数减掉整数部分就可以了。</p><p>取整数部分就用枪指转换就可以了。</p><p>-----------------------------</p><p>public class Demo {</p><p>public static void main (String args[]) {</p><p>double number = 2.56896;</p><p>double decimalPart = number - (int)number;</p><p>System.out.println(decimalPart);</p><p>}</p><p>double num = 3.15;</p><p>double num0 = num - (int)num;</p><p>去掉整数部分,就是小数部分了。把实数强转成int 然后拿实数减去强转之后的int就可以了</p><p>double result = number - (int)number;学了一招</p>
                                       
                                        <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-1416119137658217"
   crossorigin="anonymous"></script>
<ins class="adsbygoogle"
   style="display:block"
   data-ad-format="autorelaxed"
   data-ad-client="ca-pub-1416119137658217"
   data-ad-slot="9866139705"></ins>
<script>
   (adsbygoogle = window.adsbygoogle || []).push({});
</script>
                                       
                                </br>微信搜索公众号【深圳家】或者直接搜索【i-shenzhen】,获取更多信息
页: [1]
查看完整版本: bigdecimal取整数(bigdecimal保留整数)