J2EE保留小数问题

  1. 如果在前台页面,可以直接使用js的toFixed() 方法。
    number.toFixed(x)  可把 Number 四舍五入为指定小数位数的数字。
    参数x :必需。规定小数的位数,是 0 ~ 20 之间的值,包括 0 和 20,有些实现可以支持更大的数值范围。如果省略了该参数,将用 0 代替。

    eg:

    var num = 5.56789;
    var n=num.toFixed(); 

    输出结果:6;

    var num = 5.56789;
    var n=num.toFixed(2); 

    输出结果:5.57;

  2. 如果在后台处理,则使用 java.text.DecimalFormat 类。
    DecimalFormat 可以帮我们用最快的速度将数字格式化成我们所需要的样子。

    eg: 此例处理 float或double 数据,

    1 Double ss = new Double(total);
    2 String fen = "0";
    3 if(!ss.equals(new Double(0))){
    4     DecimalFormat decimalFormat = new DecimalFormat("0.0");
    5     fen= decimalFormat.format(total);//format 返回的是字符串
    6 }
    7 return fen;

    类中的符号含义: 
          0 一个数字 
          # 一个数字,不包括 0 
          . 小数的分隔符的占位符 
          , 分组分隔符的占位符 
          ; 分隔格式。 
          - 缺省负数前缀。 
          % 乘以 100 和作为百分比显示 
          ? 乘以 1000 和作为千进制货币符显示;用货币符号代替;如果双写,用国际货币符号代替。如果出现在一个模式中,用货币十进制分隔符代替十进制分隔符。 
          X 前缀或后缀中使用的任何其它字符,用来引用前缀或后缀中的特殊字符。

    eg:实例

    DecimalFormat df1 = new DecimalFormat("0.0"); 
    
    DecimalFormat df2 = new DecimalFormat("#.#"); 
    
    DecimalFormat df3 = new DecimalFormat("000.000"); 
    
    DecimalFormat df4 = new DecimalFormat("###.###"); 
    
    System.out.println(df1.format(12.34)); 
    
    System.out.println(df2.format(12.34)); 
    
    System.out.println(df3.format(12.34)); 
    
    System.out.println(df4.format(12.34)); 

    输出结果:

    12.3 
    
    12.3 
    
    012.340 
    
    12.34

    常用的例子:

     1 double pi=3.1415927; //圆周率 
     2    
     3 //取一位整数    
     4 System.out.println(newDecimalFormat("0").format(pi));   //3  
     5   
     6 //取一位整数和两位小数    
     7 System.out.println(newDecimalFormat("0.00").format(pi)); //3.14 
     8    
     9 //取两位整数和三位小数,整数不足部分以0填补。    
    10 System.out.println(new DecimalFormat("00.000").format(pi));// 03.142  
    11   
    12 //取所有整数部分    
    13 System.out.println(newDecimalFormat("#").format(pi));   //3  
    14   
    15 //以百分比方式计数,并取两位小数    
    16 System.out.println(new DecimalFormat("#.##%").format(pi)); //314.16% 
    17      
    18 longc=299792458;  //光速    
    19
    20 //显示为科学计数法,并取五位小数    
    21 System.out.println(newDecimalFormat("#.#####E0").format(c)); //2.99792E8  
    22   
    23 //显示为两位整数的科学计数法,并取四位小数    
    24 System.out.println(newDecimalFormat("00.####E0").format(c)); //29.9792E7 
    25    
    26 //每三位以逗号进行分隔。    
    27 System.out.println(newDecimalFormat(",###").format(c));   //299,792,458 
    28    
    29 //将格式嵌入文本    
    30 System.out.println(newDecimalFormat("光速大小为每秒,###米。").format(c));
时间: 2024-10-15 05:59:41

J2EE保留小数问题的相关文章

js如何实现数字保留小数点后两位小数

js如何实现数字保留小数点后两位小数:小数点后保留两位小数是比较常见的形式,由于比较简单,下面直接给出例子.代码如下: var num=3.1415926; console.log(num.toFixed(2)); toFixed()函数可以参阅javascript的Number对象的toFixed()方法一章节. 原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=9567 更多内容可以参阅:http://www.softwhy.

对数值数据的格式化处理(保留小数点后N位)

项目中有时会遇到对数值部分进行保留操作,列如保留小数点后2位,所有的数据都按这种格式处理, //保留小数点后2位,都按这种格式处理,没有补0 DecimalFormat df = new DecimalFormat("0.00"); //没有小数,或者小数部分不足是用0来补 BigDecimal db1 = new BigDecimal(111); System.out.println(df.format(db1)); //下面比较奇怪,不论是字符串表示,还是数字表示,只要没有大于11

保留小数的方法

1.利用Math.round()的方法: 两个int型的数相除,结果保留小数点后两位: int a=1188; int b=93; double c; c=(double)(Math.round(a/b)/100.0);//这样为保持2位 打印结果:c=0.12 c=new Double(Math.round(a/b)/1000.0);//这样为保持3位 打印结果:c=0.012 2.另一种办法 import java.text.DecimalFormat; DecimalFormat df2

C++ 保留小数

#include <iostream> #include <iomanip> using namespace std; int main () { double a=123456.343001; cout<<"a的值为123456.343001"<<endl<<endl; cout<<"不做任何操作,默认情况下只显示6六位数据:"<<a<<endl<<endl

java中double变量保留小数问题

(转载自玄影池扁舟) 做java项目的时候可能经常会遇到double类型变量保留小数的问题,下面便把我的经验做个简短的总结: java中double类型变量保留小数问题大体分两种情况: (一):小数点后面位数过长,四舍五入保留指定位数: 可以用以下代码实现: public class TestDemo { public static void main(String[] args) {     double a=15.32743859;     double b=Math.round(a*100

EL表达式,保留小数点后两位

你遇到过页面显示小数有9.987870488E9这个吗? 这是因为没有保留小数的原因 有时候用js保留小数很麻烦的时候,可以用EL表达式 <fmt:formatNumber type="number" value="${member.loginBonusAmount } " maxFractionDigits="2"/> maxFractionDigits:保留几位小数 记住在页面开始需要导入下面的包 <%@ taglib ur

sqlserver中计算结果保留小数

经常要保留小数,在程序中计算太麻烦了,还要转换操作.直接在数据库中操作来得方便. 把数据类型定义成decimal/numeric类型,小数位看需要随意设,除数与被除数必须要有一个为decimal/numeric中的类型, 如下例: SELECT 24.0000/38.0000     --0                            SELECT CAST(24/38 AS NUMERIC(18,4))         --0 SELECT CAST(24/38.0000 AS NU

c++ 如何实现保留小数并 且 不进行四舍五入

以保留2位小数为例,代码如下:#include <iostream>#include <iomanip>using namespace std; int main(){    double a;    cin>>a;    cout<<setiosflags(ios::fixed)<<setprecision(2)<<a<<endl;//fixed为实数输出,若改为scientifitic则是科学技术法输出:setprec

c#保留小数点后位数的方法

http://www.cnblogs.com/furenjun/archive/2010/07/13/1776484.html Double dValue = 95.12345; int iValue = 10000;            string strValue = "95.12345";            string result = ""; result = Convert.ToDouble(dValue).ToString("0.00