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>