`

Non-terminating decimal expansion; no exact representable decimal result

阅读更多
由于需要处理精度比较高的浮点数,所以弃用double类型,改用BigDecimal类来进行数值处理。

在加减乘时都没有出现问题,但是到除法运算时,提示了如下错误:

大概的意思是“无法结束的除法表达式;没有精确的除结果”。我当时输入的10/3,结果应该是3.3333....333。

于是在网上找资料,发现我原来的处理方式有问题。

BigDecimal num1 = new BigDecimal("10");

BigDecimal num2 = new BigDecimal("3");

BigDecimal num3 = num1.divide(num2);

其实devide的函数定义如下

BigDecimal.divide(BigDecimal divisor, int scale, RoundingMode roundingMode) ;

scale为小数位数;

roundingMode为小数模式;

ROUND_CEILING

如果 BigDecimal 是正的,则做 ROUND_UP 操作;如果为负,则做 ROUND_DOWN 操作。

ROUND_DOWN

从不在舍弃(即截断)的小数之前增加数字。

ROUND_FLOOR

如果 BigDecimal 为正,则作 ROUND_UP ;如果为负,则作 ROUND_DOWN 。

ROUND_HALF_DOWN

若舍弃部分> .5,则作 ROUND_UP;否则,作 ROUND_DOWN 。

ROUND_HALF_EVEN

如果舍弃部分左边的数字为奇数,则作 ROUND_HALF_UP ;如果它为偶数,则作 ROUND_HALF_DOWN 。

ROUND_HALF_UP

若舍弃部分>=.5,则作 ROUND_UP ;否则,作 ROUND_DOWN 。

ROUND_UNNECESSARY

该“伪舍入模式”实际是指明所要求的操作必须是精确的,,因此不需要舍入操作。

ROUND_UP

总是在非 0 舍弃小数(即截断)之前增加数字。

写成如下便可通过

BigDecimal num3 = num1.divide(num2,10,ROUND_HALF_DOWN);



 

转:http://blog.csdn.net/lopper/archive/2010/02/21/5314686.aspx

分享到:
评论

相关推荐

    详谈Java中BigDecimal的一个除法异常

    no exact representable decimal result." 提示我们,当前的除法运算会导致无限循环的小数部分,Java无法为这样的结果找到一个精确的`BigDecimal`表示。为了解决这个问题,我们需要在调用`divide`方法时指定商的...

    Clover_v2.4k_r4122

    [r4118]fix non-ascii characters in ACPI tables headers;[r4119]new csr settings, by PMheart;[r4120]consider more intel cpu family. update some information.;[r4121]align SETTING_DATA;[r4122]OemID ...

    Asterisk Manager-开源

    AM-Asterisk PBX GUI配置/管理系统。 AM提供了用于创建Asterisk配置(.conf)文件HTML界面。 它还允许您远程管理和监视集团电话。

    CSFB流程主要信令点说明(基于D2+Probe测试)

    1. 在LTE网络中,Paging消息先于Extended Service Request发送,后者携带service-type:mobile-terminating-CS-fallback,表明是MT-CSFB(Mobile-Terminating CS Fallback)。 2. Paging Response在GSM网络中取代了...

    inspect_float32:以二进制形式打印浮点数

    py>> > show ( '0.25' )s exp significants0 01111101 00000000000000000000000 = 0.25+ - 2>> > show ( '0.3' ) # example of a non-terminating expansions exp significants0 01111101 00110011001100110011010 ...

    Keil.STM32NUCLEO_BSP.1.8.0.pack

    -Terminating app main thread with osThreadExito to avoid endless loop Added board support: -NUCLEO-F429ZI board -NUCLEO-F746ZG board Added debugProbe attribute to board description.

    ccna frame-relay

    - `no frame-relay inverse-arp` 和 `no arp frame-relay` 用于关闭逆向地址解析,便于手动管理。 - `clear frame-relay inarp` 清除帧中继的IARP缓存。 7. **子接口类型**: - **点对点**:模拟专线,每个子...

    基于物理资源模型的物联网软件体系结构设计与形式化验证.docx

    - **中止(Non-Terminating)**:系统运行无期限地持续下去而无法正常结束。 通过PAT的验证结果,进一步采用数学归纳法证明了根据PMDA设计的物联网应用系统在实际运行中不会出现上述不良状态。 #### 结论与展望 综...

    Frame-relay交换机[参照].pdf

    - 使用`frame-relay intf-type dce`指定接口为DCE(Data Circuit-terminating Equipment),这是提供时钟信号的一方。 - `frame-relay lmi-type ansi`定义了本地管理接口(LMI)类型为ANSI,用于状态和统计信息的...

    lnotes3.pdf

    这种方法在非终止环境(non-terminating environments)中特别有用,因为它不需要知道状态转移的详细信息。 时序差分学习则更为灵活,它允许在每个时间步根据当前状态的回报预测进行更新。最简单的形式是Q学习,它...

    oracle 11g rac terminating the instance due to error 481 Doc ID 1383737.1

    PMON (ospid: nnnn): terminating the instance due to error 481 可能原因 根据Oracle官方文档,错误481可能是由于以下几种原因引起的: 1. Link local IP (169.254.x.x) is being used by other adapter/...

    Oracle Resource manager

    Canceling SQL and Terminating Sessions - **功能**:允许管理员取消正在执行的 SQL 语句或终止特定的会话。 - **应用场景**:当发现某个会话占用过多资源或执行时间过长时,可以采取措施以释放资源。 #### 三、...

    CDP的应用和实现.pdf

    结果显示,s1/1接口的物理状态为down,配置为DCE(Data Circuit-terminating Equipment),通常作为时钟源,而V.11(X.21)表示它使用的是适用于同步串行连接的标准。接口的其他状态,如DSR、DTR、RTS和CTS信号都...

    MT8820C_21C_EF6100_LTE Measurement

    - **Test Mode Connection and Disconnection**: Establishing and terminating connections in test mode. - **Broadcast Information Update**: Updating the broadcast information in the network. ### **LTE ...

    EIA RS-232-C Interface Standard-1969-标准

    C接口标准是1969年由美国电子工业协会(Electronic Industries Association,简称EIA)发布的一项通信协议,旨在规范数据终端设备(Data Terminal Equipment,DTE)与数据电路终端设备(Data Circuit-Terminating ...

    低仿微信二维码扫描

    fix crash ---- Terminating app due to uncaught exception NSInvalidArgumentException , reason: [AVCaptureMetadataOutput setMetadataObjectTypes:] unsupported type found. Use ...

    CSFB信令流程(5月30日讲课)整理.pdf

    2. LTE网络:ExtendedServiceRequest,携带service-type:mobile-terminating-CS-fallback,对应Event List中的CSFBServiceRequest。 3. LTE网络:RRCConnectionRelease,对应Event List中的InterRATRedirectionReq...

    组网技术实验

    - `copy running-config startup-config`:将运行中的配置文件保存至NVRAM(Non-Volatile Random Access Memory),确保重启后配置不会丢失。 - `interface`:进入特定网络接口的配置模式,允许设定IP地址、链路层...

Global site tag (gtag.js) - Google Analytics