• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

如何使数据库中大的浮点数正常显示,不变成科学计数法显示

mysql 搞代码 4年前 (2022-01-09) 25次浏览 已收录 0个评论

在公司实习时候发现个问题,就是大的浮点数从数据库取出后变成了科学计数法显示,而原有的验证控件并不能识别科学技术法,造成数据无法正常保存,临时找到了个解决办法。 当输入大数据的时候浮点类型在从数据库取出的时候会以科学计数法的形式显示。 比如输

在公司实习时候发现个问题,就是大的浮点数从数据库取出后变成了科学计数法显示,而原有的验证控件并不能识别科学技术法,造成数据无法正常保存,临时找到了个解决办法。

  当输入大数据的时候浮点类型在从数据库取出的时候会以科学计数法的形式显示。

  比如输入:2222222222 回显时页面显示为:2.222222222E9 这样在修改时候无法正常保存。

  解决办法:

1.方法一

  例如车辆单价: <input maxlength="8" type="text" id="cldj" onkeyup="return EnterInputFocus(this, event)" input_must="true" name="cldj" class="must double2" style="width:100%" value='’/>

  注意黑体字部分是车辆单价的显示方式,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.方法三

代码如下

本文来源gaodai.ma#com搞#代!码(网

<%
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 %>

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);
}
}


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:如何使数据库中大的浮点数正常显示,不变成科学计数法显示

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址