java中超過int的最大范圍問題
java中超過int的最大范圍
直接po圖片和代碼
如下圖
大家有沒有想過,在java中,如果我們要保存一個超大的整數(shù),該如何做呢?這是我心血來潮想到的一個問題。
將瀏覽器客戶端中傳遞過來的參數(shù),轉(zhuǎn)換成int類型(測試超過int的最大范圍)
有時候無法保證用戶會在文本框中輸入多大的數(shù)字,萬一用戶在文本框中輸入了一個超級大的數(shù)字提交到服務(wù)器端,我們該如何處理呢?大家可以集思廣益!





下面是jsp頁面和servlet的源代碼
如下是servlet源代碼
package com.servlet;
import java.io.IOException;
import java.math.BigDecimal;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 測試超過int的最大范圍
*/
@WebServlet("/TestInt")
public class TestInt extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String number6 = request.getParameter("number6");
System.out.println("number6=" + number6);
//將瀏覽器客戶端中傳遞過來的參數(shù),轉(zhuǎn)換成int類型(測試超過int的最大范圍)
//有時候無法保證用戶會在文本框中輸入多大的數(shù)字,萬一用戶在文本框中輸入了一個超級大的數(shù)字提交到服務(wù)器端
BigDecimal bigDecimal = new BigDecimal(number6);
System.out.println("bigDecimal=" + bigDecimal);
//如下:如果用int類型來接收超大數(shù)據(jù),會報錯
int intNumber6 = Integer.parseInt(number6);
System.out.println("intNumber6=" + intNumber6);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}下面是testInt.jsp頁面
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>測試超過int的最大范圍</title>
<style type="text/css">
input {
/*文本框樣式*/
/*border:2px solid blue;*/
/*這是簡易寫法,這樣寫語法是合理的,而且可以可以節(jié)省時間,如果不省略,border具體對應(yīng)的屬性寫法如下:*/
font-size: 25px;
border-radius: 6px; /*把邊框做成圓角*/
border-width: 2px;
border-style: solid;
border-color: #4B0082;
}
input[type=text], input[type=password] {
width: 600px;
height: 32px;
font-size: 20px;
border: 2px solid #8E388E;
border-radius: 4px; /*設(shè)置邊框的4個直角變成圓角有弧度*/
font-weight: bold; /*文本框中的文本字體加粗*/
color: #0000a0;
background-color: #ffff9f;
}
input[type=button], input[type=submit], input[type=reset], button {
background-color: #8E388E;
border-radius: 3px;
border: none;
padding: 6px 8px;
color: #fff;
font-size: 14px;
overflow: visible;
cursor: pointer;
margin: 0px;
line-height: normal;
box-sizing: border-box;
display: inline-block;
text-align: center;
vertical-align: middle;
/*width:360px;*/
/*height: 50px;*/
}
</style>
<script type="text/javascript">
var jsonObj = {"userName":"ja\"\"ck"};
console.log(jsonObj.userName);
var testInt = 999999999999999999999999999;
var testInt2 = 99;
window.onload = function() {
}
function setInputNodeValue1(){
$("number1").value = testInt;
}
function setInputNodeValue2(){
$("number2").value = testInt + 100;
}
function setInputNodeValue3(){
$("number3").value = testInt2;
}
function setInputNodeValue4(){
$("number4").value = testInt2 + 100;
}
function setInputNodeValue5(){
$("number5").value = testInt - 999999999999999999999999995;
}
function setInputNodeValue7(){
$("number7").value = testInt - 9999999999999999995;
}
function $(id){
var obj = document.getElementById(id);
return obj;
}
</script>
</head>
<body>
<h1>測試超過int的最大范圍</h1>
<input type="button" value="給文本框1賦值" onclick="setInputNodeValue1()">
文本框1:<input type="text" id="number1"><br/><br/>
<input type="button" value="給文本框2賦值" onclick="setInputNodeValue2()">
文本框2:<input type="text" id="number2"><br/><br/>
<input type="button" value="給文本框3賦值" onclick="setInputNodeValue3()">
文本框3:<input type="text" id="number3"><br/><br/>
<input type="button" value="給文本框4賦值" onclick="setInputNodeValue4()">
文本框4:<input type="text" id="number4"><br/><br/>
<input type="button" value="給文本框5賦值" onclick="setInputNodeValue5()">
文本框5:<input type="text" id="number5"><br/><br/>
<div style="background-color: #7CCD7C; height: 60px;border:2px solid green;">
<form action="${pageContext.request.contextPath}/TestInt" method="get">
文本框6:
<input type="text" id="number6" name="number6" value="999999999999999999999999999" size="30">
<input type="submit" value="提交到servlet">
</form>
</div>
<br/>
<input type="button" value="給文本框7賦值" onclick="setInputNodeValue7()">
文本框7:<input type="text" id="number7"><br/><br/>
</body>
</html>總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Maven install 報錯"程序包不存在"問題的解決方法
這篇文章主要介紹了Maven install 報錯"程序包不存在"問題的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-07-07
Java返回文件時為圖片或pdf等設(shè)置在線預(yù)覽或下載功能
這篇文章主要介紹了Java返回文件時為圖片或pdf等設(shè)置在線預(yù)覽或下載功能,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2024-01-01
SpringBoot整合MQTT并實現(xiàn)異步線程調(diào)用的問題
這篇文章主要介紹了基于SpringBoot通過注解實現(xiàn)對mqtt消息處理的異步調(diào)用,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-11-11
Springboot和bootstrap實現(xiàn)shiro權(quán)限控制配置過程
這篇文章主要介紹了Springboot和bootstrap實現(xiàn)shiro權(quán)限控制,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-04-04
深入解析Spring Boot熱部署與性能優(yōu)化實踐指南
本文從Spring Boot熱部署原理入手,結(jié)合生產(chǎn)環(huán)境中的實戰(zhàn)經(jīng)驗,深入分析熱部署的底層實現(xiàn)機制,并給出性能優(yōu)化的實踐建議,幫助開發(fā)者在提升開發(fā)效率的同時保障系統(tǒng)性能,本文給大家介紹的非常詳細,感興趣的朋友一起看看吧2025-10-10

