如何使資料庫中大的浮點數正常顯示,不變成科學計數法顯示
在公司實習時候發現個問題,就是大的浮點數從資料庫取出後變成了科學計數法顯示,而原有的驗證控制元件並不能識別科學技術法,造成資料無法正常儲存,臨時找到了個解決辦法。
當輸入大資料的時候浮點型別在從資料庫取出的時候會以科學計數法的形式顯示。
比如輸入:2222222222 回顯時頁面顯示為:2.222222222E9 這樣在修改時候無法正常儲存。
解決辦法:
1.方法一
遇到此種情況時採用JSTL的fmt:format標籤進行處理,
例如車輛單價: <input maxlength="8" type="text" id="cldj" onkeyup="return EnterInputFocus(this, event)" input_must="true" name="cldj" class="must double2" style="width:100%" value='<fmt:formatNumber value="${jyJycljbxxVO.cldj}" maxIntegerDigits="20" maxFractionDigits="10"/>'/>
注意黑體字部分是車輛單價的顯示方式,maxIntegerDigits為整數部分顯示的最大長度,maxFractionDigits為小數部分顯示的最大長度。
這樣可以將2.222222222E9轉化成2,222,222,222 之後採用字串匹配方式去掉” , ”,採用正規表示式處理,函式為
2.方法二
用正規表示式處理字串,去掉格式化之後的浮點數型別
function formatNum(id){
document.getElementById(id).value=document.getElementById(id).value.replace(/,/gi,'');
}
這個函式可以將2,222,222,222中的” , ”去掉,使其正常顯示。
其中id為輸入框的id。
在<body>的onload屬性中新增如下語句呼叫formatNum("cldj");
3.方法三
程式碼如下
<span>
<c:set value="${raffle.probability}" var="cash" scope="request"></c:set>
<%
java.text.DecimalFormat df=new java.text.DecimalFormat("#0.00000");//指定轉換的格式
Object cash=request.getAttribute("cash");
if("".equals(cash)||cash==null){cash="0";}
String str=df.format(cash);//將double型別的值轉換為String型別
%>
<%=str %>
</span>
4.方法四
import java.text.DecimalFormat;
public class tetr
{
public static String padDoubleLeft(Double d, int totalDigit,int fractionalDigit) {
String str="";
DecimalFormat decimalFormat = new DecimalFormat();
decimalFormat.setMinimumFractionDigits(fractionalDigit);
decimalFormat.setMaximumFractionDigits(fractionalDigit);
decimalFormat.setGroupingUsed(false);
decimalFormat.setMaximumIntegerDigits(totalDigit - fractionalDigit - 1);
decimalFormat.setMinimumIntegerDigits(totalDigit - fractionalDigit - 1);
str=decimalFormat.format(d);
/**
* 去掉前面的0(比如000123213,最後輸出123213)
*/
while(str.startsWith("0"))
{
str=str.substring(1);
}
return str;
}
public static void main(String[] args)
{
String str="";
Double d=1.7949E+7;
/**d表示你要轉化的數字*/
/**50表示總共要留多少位數,
* 2表示小數位數,
* 如果不知道總共留多少位,可以給大一些(比如此處為50)
* 一般情況下,總位數不會超過50,除非客戶有這個需要
* 小數按照客戶要求來作
* */
str=padDoubleLeft(d,50, 2);
System.out.println(str);
}
}
相關文章
- 在SQL PLUS 顯示數值型 遮蔽科學計數法SQL
- PL/SQL DEVELOPER數字超長顯示了科學計數法SQLDeveloper
- 顯示資料庫所有引數資料庫
- 華為遊戲浮標不顯示或顯示異常遊戲
- 子元素浮動不能正常顯示的解決辦法
- swift 混編 oc 斷點時資料只有變數名稱不顯示值Swift斷點變數
- Python 設定numpy不以科學計數法儲存和顯示的方法Python
- ORACLE 數字型別(number)的值長時,科學計數顯示問題Oracle型別
- ORACLE中科學計數法顯示問題的解決Oracle
- 顯示資料庫中所有表的記錄數資料庫
- easyui datetimebox 如何只顯示 月份,不顯示具體的資料UI
- MySql資料庫 數值型別的顯示寬度MySql資料庫型別
- 數碼管顯示動態資料
- Word如何開啟講義無法顯示的數學符號符號
- win10工作列圖示不顯示怎麼辦 修復工作列顯示不正常的辦法Win10
- CSS實現限制顯示的字數,超出顯示"..."CSS
- mysql匯出長數字到excel避免顯示為科學記數法 解決方法MySqlExcel
- unity 分數的顯示Unity
- element table不顯示任何資料,無資料倒是顯示出無資料的了
- v$Sql_bind_capture 時間變數無法顯示SQLAPT變數
- Laravel 固定每頁顯示條數和顯示頁數(超過部分直接返回空資料)Laravel
- css使文字顯示兩行後顯示省略號CSS
- 網站顯示無法連線資料庫網站資料庫
- 電腦顯示器黑屏 顯示器不亮的解決辦法
- 控制皮膚中的java無法正常顯示Java
- ORACLE9I資料表中不顯示中文,而變成問號Oracle
- WAD7.0顯示變數問題變數
- SAP ALV小數點後面如果為0不顯示
- 友好的顯示小數ORACLEOracle
- 科學計算教你顯示器尺寸怎麼選 顯示器多大尺寸合適?
- 使用xml來顯示數學公式 (轉)XML公式
- grail中數字顯示AI
- vmware不顯示usb圖示解決辦法
- 伺服器上訪問正常顯示網頁,遠端的時候“無法顯示”伺服器網頁
- 修改資料庫的日期顯示格式資料庫
- 顯示資料庫中表的主鍵資料庫
- thinkphp控制器變數在模板中顯示PHP變數
- linux環境變數顯示、新增、刪除Linux變數