java中超过int的最大范围

java中超过int的最大范围

直接po图片和代码

如下图:大家有没有想过,在java中,如果我们要保存一个超大的整数,该如何做呢?这是我心血来潮想到的一个问题?欢迎大家留言,不吝赐教!

将浏览器客户端中传递过来的参数,转换成int类型(测试超过int的最大范围)
有时候无法保证用户会在文本框中输入多大的数字,万一用户在文本框中输入了一个超级大的数字提交到服务器端,我们该如何处理呢?大家可以集思广益!

下面是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);
		//将浏览器客户端中传递过来的参数,转换成int类型(测试超过int的最大范围)
		//有时候无法保证用户会在文本框中输入多大的数字,万一用户在文本框中输入了一个超级大的数字提交到服务器端
		BigDecimal bigDecimal = new BigDecimal(number6);
		System.out.println("bigDecimal=" + bigDecimal);
		//如下:如果用int类型来接收超大数据,会报错
		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;*/
	/*这是简易写法,这样写语法是合理的,而且可以可以节省时间,如果不省略,border具体对应的属性写法如下:*/
	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; /*设置边框的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>

 

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页