Java BigDemical在工作中的應用(主要用於錢的處理)
bigDecimal在java.math包下,提供用於執行任意精度小數演算法的類。
BigDecimal 不可變的、任意精度的有符號十進位制數。
java.math.BigDecimal
BigDecimal類使使用者完全控制舍入行為。如果未指定舍入模式,並且無法表示準確結果,則丟擲一個異常;否則,通過向該操作提供適當的MathContext物件,可以對已選擇的精度和舍入模式執行計算。在商業計算中要用BigDecimal。BigDecimal所建立的是物件,我們不能使用傳統的+、-、*、/等算術運算子直接對其物件進行數學運算,而必須呼叫其相對應的方法。方法中的引數也必須是BigDecimal的物件。構造器是類的特殊方法,專門用來建立物件,特別是帶有引數的物件。
常用構造方法:可以將String型別的數字,int,double,long作為構造方法的引數傳入進行構造一個BigDecimal物件。
常用方法:
加減乘除
add(BigDecimal) BigDecimal物件中的值相加,然後返回這個物件。
subtract(BigDecimal) BigDecimal物件中的值相減,然後返回這個物件。
multiply(BigDecimal) BigDecimal物件中的值相乘,然後返回這個物件。
divide(BigDecimal) BigDecimal物件中的值相除,然後返回這個物件。
toString() 將BigDecimal物件的數值轉換成字串。
doubleValue() 將BigDecimal物件中的值以雙精度數返回。
floatValue() 將BigDecimal物件中的值以單精度數返回。
longValue() 將BigDecimal物件中的值以長整數返回。
intValue() 將BigDecimal物件中的值以整數返回。
將計算結果進行格式化:
//金額 NumberFormat currency =NumberFormat.getCurrencyInstance(); //利率 NumberFormat percent = NumberFormat.getPercentInstance(); //小數點後最多三位 percent.setMaximumFractionDigits(3); BigDecimal loanMoney = new BigDecimal(12345.32); //貸款金額 BigDecimal rate = new BigDecimal(0.004); //利率 BigDecimal intrest = loanMoney.multiply(rate); //利息 System.out.println("貸款:"+currency.format(loanMoney)); System.out.println("利率:"+percent.format(rate)); System.out.println("利息:"+currency.format(intrest)); <span style="font-size:18px;">結果:</span>
貸款:¥12,345.32
利率:0.4%
利息:¥49.38
在使用者展示的時候比較方便
比較大小,例如查詢使用者錢包的餘額和這次要支付的錢的大小。
BigDecimal是通過使用compareTo(BigDecimal)來比較的,具體比較情況如下:
public static void main(String[] args) {
BigDecimal a = new BigDecimal("100");
BigDecimal b = new BigDecimal("10");
BigDecimal c = new BigDecimal("10");
int result1 = a.compareTo(b);
int result2 = a.compareTo(c);
int result3 = b.compareTo(c);
<span style="font-size:18px;"></span><pre name="code" class="java"> int result4 = b.compareTo(a);
System.out.println(result1); System.out.println(result2); System.out.println(result3);
System.out.println(result4);
} 結果:
1
1
0
-1
compareTo左邊大,輸出1,,右邊大輸出-1,相等輸出0
相關推薦
Java BigDemical在工作中的應用(主要用於錢的處理)
bigDecimal在java.math包下,提供用於執行任意精度小數演算法的類。 BigDecimal 不可變的、任意精度的有符號十進位制數。 java.math.BigDeci
python3__深度學習:TensorFlow__資料的生成與讀取(主要針對影象處理)
1.CSV檔案(提供影象地址和標籤) 1.1 建立 import os path = "pic" filenames = os.listdir(path=path) strText = "" with open(file="train_list.csv", mode="w") as
smb windows中使用的檔案共享協議(主要用於與windows互通)
主要是samba服務。 SMB協議又成為CIFS(Common Internet File System)協議 samba服務功能: 1檔案共享 2列印共享 3加入windows2000/2003/2008域環境 4通過windows域環境進行認證操作。 在windows使用
(轉)基於MVC4+EasyUI的Web開發框架經驗總結(6)--在頁面中應用下拉列表的處理
ica new web開發 don ext images 如果 bob 獲取 http://www.cnblogs.com/wuhuacong/p/3840321.html 在很多Web界面中,我們都可以看到很多下拉列表的元素,有些是固定的,有些是動態的;有些是字典內容,
Java找工作中如何包裝自己
就業 3年 尚學堂 今天 中一 關於 nbsp 分享 一個 人靠衣裝佛靠金裝,這句古代成語,我們從小聽到大,在面試中我們也經常說,要穿的大方得體,這也是包裝自己的一個方面,那麽在Java找工作中如何具體的包裝自己呢?這是個很有必要討論的話題,今天就跟長沙尚學堂小編一起
百曉生詳解nginx(下)nginx在實際生產環境中的應用(該帖連載更新)
2.0 編譯環境 + - apache 80端口 ali oss keep fff 案例一:Nginx+Tomcat負載均衡集群的部署案例概述:京北點指科技有限公司發布V3版移聯建站管理系統,該項目為JAVA語言開發web站點。實驗環境:站點服務器(tomcat1)cent
Java框架-SpringMVC的應用(json資料互動、控制器方法返回值、檔案上傳)
1. 搭建SpringMVC開發環境 1.1 建立專案,新增依賴 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" x
介面測試系列:工作中所用(三:__read_config.py檔案)
import os from common import fileUtil def __read_config(): base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) settings_file
Java基礎之反射應用(如何獲取物件的構造方法、屬性以及、基本方法)
反射實戰:新建Student類,利用反射原理輸出Student的構造方法,屬性,普通方法,引數列表等等資訊。 反射資料:查詢java_API之:java.lang.reflect包下。 Student類: package com.briup.ch24; public class St
javaWeb專案(Spring、Struts2框架)gbk轉gb180整體方案(主要用於解決生僻字)
一、需要需改點: 1:jsp中指定瀏覽器編碼格式,修改後:<%@ page contentType="text/html; charset=GB18030"%> 2:過濾器:
C++工作筆記-3種方法對資料型別進行拆分(可用於各種協議)
比如用Long Long存3個數據的內容。 這裡要知道大小端的知識點。 方法一是用位運算; 方法二是用指標; 方法三是結構體(本質上也是指標); 執行截圖如下: 原始碼如下: main.cpp #include <iostream> using
介面測試系列:工作中所用(六:測試套件)
測試套件檔案下的testcase import importlib import sys, time, unittest from gevent import os import os from common import file_util, BSTestRunner from
接口測試系列:工作中所用(六:測試套件)
testcase none util 批量 script desc run 套件 cal 測試套件文件下的testcase import importlib import sys, time, unittest from gevent import os import
介面測試系列:工作中所用(十:配置檔案的讀寫操作 configparser模組)
global_cache.py # -*- codeding: utf-8 -*- import configparser import hashlib import os from common.base import ENV class globalInfo: def get_
Java IO流及應用(一)
IO流 IO流概述及FileWriter類的使用 FileReader類使用 緩衝流介紹和使用 IO流相關案例 NO.one IO流概述及FileWriter類使用 1.1 IO流概述及分類 IO流用來處理裝置之間的資料傳輸  
Myeclipse10安裝Aptana(主要用於js和jquery的編輯)
Myeclipse10安裝Aptana 在實際專案開發中由於Myeclipse10編輯jsp和js的功能不夠強大,那麼我們需要引入第三方外掛,這樣Aptana外掛就是比較好的選擇,本文詳細介紹在Myeclipse10安裝Aptana外掛的過程和配置方法。
Java代理模式及應用(三)Cglib實現
前一節所說的靜態代理和動態代理模式都是要求目標物件是實現一個介面的目標物件,但是有時候目標物件只是一個單獨的物件,並沒有實現任何的介面,這個時候就可以使用以目標物件子類的方式類實現代理,這種方法就叫做:Cglib代理 1.Cglib說明 Cglib代理,
VLC在web系統中應用(x-vlc-plugin 即如何把VLC嵌入HTML中)第一篇
http://blog.csdn.net/vblittleboy/article/details/12706011 VLC毫無疑問是優秀的一款播放軟體,子B/S機構的web專案中,如果能把它嵌入頁面,做頁面預覽或者其他,是非常棒的。 第一步:下載VLC安裝程式;(
JDK1.7升級到1.8版本(主要用於ELasticsearch)
過程如下: 在Oracle官網下載1.8版本的JDK檔案 jdk-8u121-linux-x64.rpm 然後進行升級 # rpm -qa jdk jdk-1.7.0_80-fcs.x86_6
Java web 工作中遇到的一些問題
1、replaceAll()報錯 public class Biaomi { public static void main(String[] args) { String a = "發大(水廢)"; String b = "發大水(作廢),發大水";