fmt标签浮点数精度设置问题

转载 2012年03月23日 15:21:41

fmt标签浮点数精度设置问题  

2011-07-05 15:13:38|  分类: 学习 |字号 订阅

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>

在jsp里使用<fmt:formatNumber/>, 对double,float,等浮点类型数值,进行 四舍五入时,使用

1. ie6 <fmt:formatNumber />不起作用的问题

<fmt:formatNumber value="${prdsAmount - ctocOrder.orderAmount+ctocOrder.transAmount}" pattern="0.00" />  四舍五入,精确到小数点后两位,在ie7,ie8,和firefox上,可以正确使用,但 有的ie6,是不支持的,它会把格式过的内容,重新忽略掉,直接是el表达式的结果,所以在使用formatNumber前,最好 先设置 <fmt:setLocale value="en_US"/>.就不会出问题了。

2. 格式完后,减法运算时,显示-0.0的问题。

本人认为,可能由于计算机精度的问题,有时候几个数相减时,因为相减的数值均为浮点类型,我们看着两个相同 的数相减,应该为0.0,其实由于精度的不同,而是-0.000000000000099等小数点后,未知的小数,所以实际上是负值。如果你只是为页面显示,可以在减法结束后再加上不影响结果的小数值,从而得到正数0.0. 最好的方法,就是在程序里,直接把浮点数的精度设置好,就不会出现上述问题了。


from:http://feixia-168.blog.163.com/blog/static/182440992011653442954/

jstl的formatNumber标签的四舍五入问题

使用JSTL的formatNumber 标签进行四舍五入时,发现它竟然使用的是"4舍6入5奇偶"的算法. 要实现"四舍五入",只需要在原有值的基础上再加一个比较小的值即可: "4舍6入5奇偶...
  • yongbuyanqi88888
  • yongbuyanqi88888
  • 2015年09月04日 12:17
  • 1557

el表达式保留两位小数、使用jstl <fmt:formatNumber>标签保留两位小数

上面代码输出结果为:551.10
  • zh921112
  • zh921112
  • 2014年11月28日 18:25
  • 55166

JSTL之formatNumber取整

EL表达式取整或者取固定位小数 目前最好的方法在网上查了许多资料都说EL表达式无法取整,的确EL表达式除法结果为浮点型。例如${8/7} ,${6/7} ,${12/7 } 在页面的显示结果分别为:1...
  • debbykindom
  • debbykindom
  • 2010年09月01日 09:25
  • 17086

解决jsp页面数字精度丢失的问题

有时候涉及到数字计算的情况下,jsp页面可能会出现精度丢失的问题,例如,1.0显示成0.99999999这种问题。下面是这个问题的解决方案,以供参考。...
  • qq_21787073
  • qq_21787073
  • 2017年09月05日 15:27
  • 303

两个float相减时丢失精度的解决方法

通常我们习惯这么写:        float a = 2.123f;           float b = 1.101f;           System.out.println("a-b...
  • u011447828
  • u011447828
  • 2014年04月17日 16:28
  • 1613

C++设置浮点数显示的精度

using namespace std; cout.precision(int nP); cout.setf(ios::fixed,ios::floatfield);   或者 cout.se...
  • zjd1023
  • zjd1023
  • 2012年04月16日 17:51
  • 2714

C++中控制浮点数精度函数setprecision使用方法

函数原型: setprecision(streamsize _Prec); 功能: 使用setprecision(n)可控制输出流显示浮点数的数字个数。C++默认的流输出数值有效位是6 参数:...
  • shihui512
  • shihui512
  • 2013年05月12日 21:41
  • 4449

fmt标签浮点数精度设置问题

fmt标签浮点数精度设置问题   2011-07-05 15:13:38|  分类: 学习 |字号 订阅 http://java.sun.com/jsp/jstl/f...
  • seelye
  • seelye
  • 2012年03月23日 15:21
  • 3358

JAVA程序中Float和Double精度丢失问题

JAVA程序中Float和Double精度丢失问题 为何浮点数可能丢失精度浮点十进制值通常没有完全相同的二进制表示形式。 这是 CPU所采用的浮点数据表示形式的副作用。为此,可能会经历一些精度丢...
  • ccecwg
  • ccecwg
  • 2014年03月27日 14:25
  • 774

设置浮点数精度(precision、setprecision)

在C++中可以人为控制浮点数的精度,也就是说可以用流操纵算子setprecision或成员函数percision控制小数点后面的位数。设置了精度以后,该精度对之后所有的输出操作都有效,直到下一次设置精...
  • imxiangzi
  • imxiangzi
  • 2015年11月20日 13:28
  • 1206
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:fmt标签浮点数精度设置问题
举报原因:
原因补充:

(最多只允许输入30个字)