You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@freemarker.apache.org by "minglaing ma (JIRA)" <ji...@apache.org> on 2018/08/08 08:13:00 UTC
[jira] [Created] (FREEMARKER-102) ${float?string('0.##;;
roundingMode=halfUp')}
minglaing ma created FREEMARKER-102:
---------------------------------------
Summary: ${float?string('0.##;; roundingMode=halfUp')}
Key: FREEMARKER-102
URL: https://issues.apache.org/jira/browse/FREEMARKER-102
Project: Apache Freemarker
Issue Type: Bug
Affects Versions: 2.3.28
Reporter: minglaing ma
java
Configuration configuration = new Configuration(Configuration.VERSION_2_3_28);
configuration.setClassForTemplateLoading(new Main().getClass(), "/jigndu");
Template template = configuration.getTemplate("index.ftl");
Map<Object,Object> root =new HashMap<Object, Object>();
root.put("float", 172.525f);
Writer out =new OutputStreamWriter(System.out);
template.process(root, out);
ftl
${float?string('0.##;; roundingMode=halfUp')}
output
172.52
I think 172.53 is right
the reason is
[java|eclipse-javadoc:%E2%98%82=myfreemarker/D:%5C/Java%5C/jdk1.8.0_45_64%5C/jre%5C/lib%5C/rt.jar%3Cjava].[text|eclipse-javadoc:%E2%98%82=myfreemarker/D:%5C/Java%5C/jdk1.8.0_45_64%5C/jre%5C/lib%5C/rt.jar%3Cjava.text].NumberFormat format method param is a double,now i use a float。
when float to double wrong,i think
freemarker.core.JavaTemplateNumberFormat.format method should
if (number instanceof Float)
{
return javaNumberFormat.format(new BigDecimal(String.valueOf(number)));
}
return javaNumberFormat.format(number);
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)