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

php中文网
发布: 2016-06-07 15:47:30
原创
3246人浏览过

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

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

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

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

  解决办法:

1.方法一

  例如车辆单价:

  注意黑体字部分是车辆单价的显示方式,maxIntegerDigits为整数部分显示的最大长度,maxFractionDigits为小数部分显示的最大长度。

  这样可以将2.222222222E9转化成2,222,222,222 之后采用字符串匹配方式去掉” , ”,采用正则表达式处理,函数为

2.方法二

用正则表达式处理字符串,去掉格式化之后的浮点数类型

function formatNum(id){                          

BeatBot
BeatBot

Splash的AI音乐生成器,AI歌曲制作人!

BeatBot 165
查看详情 BeatBot

       document.getElementById(id).value=document.getElementById(id).value.replace(/,/gi,'');

}

 这个函数可以将2,222,222,222中的” , ”去掉,使其正常显示。

其中id为输入框的id。

的onload属性中添加如下语句调用formatNum("cldj"); 

 

 
 3.方法三

代码如下 

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

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

 

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号