Redondeando en Java

Si os habéis encontrado alguna vez con la necesidad de redondear un número en Java, habréis visto que no existe un método directo para hacerlo

A veces se hace multiplicando pasando a entero y dividiendo, pero no es una forma fiable.

La forma de hacerlo sería mediante el método setScale de la clase java.math.BigDecimal:


public static double round(double value, int decimalDigits) {
	BigDecimal bd = new BigDecimal(value);
	bd = bd.setScale(decimalDigits, BigDecimal.ROUND_HALF_UP);
	return bd.doubleValue();
}

Tenemos varias opciones a la hora de redondear que podemos ver en la documentación de BigDecimal.

Espero que os ayude.

Add comment 27 Febrero 2010

Alerta de contenido no seguro en Internet Explorer

Estábamos desplegando una aplicación en un servidor seguro y al probar con Internet Explorer recibíamos en todas las páginas el siguiente mensaje.

Este mensaje indica que en la respuesta a nuestra petición segura https se acceden algunas partes mediante el protocolo no seguro http. Esto es un riesgo de seguridad y por eso nos alerta.

Tras varias pruebas intentando localizar el contenido no seguro di con una gran entrada de Eric Lawrence sobre el tema del contenido no seguro ( en inglés) que me ayudó a solucionar el problema.

Por un lado desde el punto de vista del navegador podemos hacer que no nos aparezca la ventanita. Evidentemente no es la solución óptima el obligar a que el navegador no nos muestre un aviso de seguridad, pero para un aprieto (una demo por ejemplo) nos puede ayudar. Para ello abrimos las opciones del navegador (“Herramientas->Opciones de Internet”) y vamos a la pestaña de “Seguridad”. En la parte de “Internet” pulsamos “Nivel personalizado…” y buscamos la opción de “Mostrar contenido mixto”. Cambiamos de “Preguntar” a “Habilitar”.

Como desarrolladores debemos preocuparnos de que si nuestra aplicación va a ejecutarse bajo https nuestras páginas no llamen a contenido no cifrado. Para descubrir si hacemos peticiones http podemos utilizar el Web Developer para Firefox o una buena herramienta que también descubrí gracias al post mencionado anteriormente como es Fiddler.

En nuestro caso y tras ver que no hacíamos ninguna llamada http descubrimos que lo que ocurría es la posibilidad que señala Eric en su sitio. Parece ser que Internet Explorer marca como contenido no seguro una llamada a JavaScript del estilo:

<br />
&lt;script type=&quot;text/javascript&quot; id=&quot;contentloadtag&quot; src=&quot;javascript:void(0)&quot; &gt;<br />

Con eliminar el parámetro src se solucionará el problema. Una de las librerías JavaScript que utilizábamos tenía una llamada de ese tipo.

Espero que os sea útil.

1 comment 15 Enero 2010

Error en la comparación de String con la librería de tags de Struts2

Os voy a comentar un pequeño error que nos puede descolocar un poco cuando tratamos de comparar cadenas mediante la librería de etiquetas de Struts2 en nuestras páginas JSP.

Si hacemos una comparación con Strings al estilo de:

<s:if test="propiedad == 'SI'">
  <div>Mostrar texto</div>
</s:if>

obtendremos el resultado esperado (mostrará el texto si nuestra propiedad vale “SI”), pero si la comparación es:

<s:if test="propiedad == 'S'">
 <div>Mostrar texto</div>
</s:if>

veremos que aunque nuestra propiedad valga “S” no aparece el texto. Es decir, que cuando hacemos comparaciones de Strings de un sólo carácter nos falla. La responsable es la librería OGNL que evalúa las expresiones ya que al encontrar se un sólo carácter lo toma como un tipo Char y no un String.

Para solucionarlo nos basta cambiar las comillas:

<s:if test='propiedad == "S">
  <div>Mostrar texto</div>
</s:if>

o bien escapar las comillas dobles:

<s:if test="propiedad == \"S\"">
  <div>Mostrar texto</div>
</s:if>

Espero que le pueda servir a alguien.

2 comments 17 Diciembre 2009

Previous Posts


Feedburner

Mi perfil

View Miguel Orbegozo's profile on LinkedIn

Etiquetas

AJAX BlogDay2008 Blueprint CakePHP CDarranque CSS CVS Eclipse Enlaces Equinox Felix Firefox General Git Hudson iBatis Java Javascript JodaTime JQuery JUnit Linux Log4j Logback Maven Nexus OSGi Persistencia PHP Server Software Spring Struts2 Terracotta Tomcat Trucos Ubuntu Windows

Entradas recientes

Últimos comentarios

Feedjit

Feeds

Anteriormente en TCYMU…

Otros…

Blogs

BlogESfera Directorio de Blogs Hispanos - Agrega tu Blog

Bitacoras.com

Add to Technorati Favorites