首页 > 其他分享 >freemarker 引擎模板保留两位小数,去尾法不进行四舍五入的方法

freemarker 引擎模板保留两位小数,去尾法不进行四舍五入的方法

时间:2023-12-29 16:55:06浏览次数:27  
标签:四舍五入 string freemarker 尾法 #.# 进位 roundingMode 表达式

${4511.25?string("#.#")}  这个表达式的结果为4511.2;并不是传统的四舍五入规则;正确的应该是下面这个表达式:

${4511.25?string("#.#;;roundingMode=halfUp")} 这个表达式的结果为4511.3。

而 ${4511.35?string("#.#")}   这个表达式的结果是4511.4

FreeMarker默认的规则是5可能进位也可能不进位,取决于进位后前面一位是否为偶数,如果是则进位,否则不进位。

在String函数中加入roundingMode=halfUp并与前面表达式用";;"隔开;也就是类似于string("#.#;;roundingMode=halfUp")这种形式可以实现四舍五入。

官方文档:https://freemarker.apache.org/docs/ref_builtins_number.html

上述文档来源:https://blog.csdn.net/bingxing163/article/details/97784845

在String函数中加入roundingMode=halfDown并与前面表达式用";;"隔开;也就是类似于string("#.#;;roundingMode=halfDown")这种形式可以实现去尾保留两位小数。

例如 .ftl页面中<#if totalMoney??>${totalMoney?string("#,##0.00;;roundingMode=halfDown")}</#if>实现每三位用逗号隔开,保留两位小数不进行四舍五入。

 

标签:四舍五入,string,freemarker,尾法,#.#,进位,roundingMode,表达式
From: https://www.cnblogs.com/wmxblog/p/17935246.html

相关文章

  • Template Engines for Spring: FreeMarker | Java Server Pages | Thymeleaf | Jade4j
    Besidesthetemplateenginesdescribedsofar,therearequiteafewmoreavailablewhichmaybeused.Let’sreviewsomeofthembriefly.Velocity isanoldertemplateengine,whichisverycomplexbuthasthedisadvantagethatSpringhasdeprecateditsu......
  • freemarker模板数据解析1--页面语法直接获取
    freemarker模板数据解析1--页面语法直接获取​ 对后端接口传递过来的Map<String,List>类型数据的展示。对于普通Map<String,String>数据,我们很清楚,直接上代码:·接口提供数据:Map<String,String>map=newHashMap<>();map.put("k1","v1");map.put("k2","v2"......
  • 保留N为小数 不四舍五入
    constprecisionFormatEther=(value,prec=4)=>{if(!value||!Number.isInteger(Number(value))||Number(value)<0)return'0'letx,y,zx=formatEther(value.toString())y=x.indexOf('.')z=x.slice(y+1,y+prec+1)......
  • 使用freemarker,导出制作好的ftl模板,并写入数据
    使用freemarker,导出制作好的ftl模板,并写入数据一、背景1.1项目背景最近在开发一个项目,需要导出一些数据,然后写入到word文档中,然后再导出到本地,这个需求是比较常见的,但是我在网上找了很多资料,都没有找到一个比较好的解决方案,所以就自己写了一个,这里分享给大家,希望能帮助到大家......
  • 关于浮点数误差以及四舍五入
    https://blog.csdn.net/Xavier_97/article/details/126931927由于很玄学,我们考虑统一使用库函数round和自己手写round来实现最终输出整数的四舍五入和小数保留k位的四舍五入#include<iostream>#include<cmath>usingnamespacestd;intmain(){doublea=1.4999999......
  • 5 分钟,带你入门 FreeMarker 模板引擎!
    大家好,我是鱼皮。最近不是打算带大家做一个代码生成项目嘛,项目的第一阶段就是先做一个本地的代码生成器。代码生成器的核心功能就是根据用户输入的选项参数来生成不同的代码文件。代码生成器的核心原理那么如何实现这个功能呢?最经典的方法就是:提前编写模板文件,并将用户输入的参......
  • 【C语言基础】float、double 浮点数类型的四舍五入问题
    简短不看版:C语言中,不能进行doublea==doubleb 这样的运算。另外,printf(".1f",&double)的时候,数据输出不同时候,可能会不一样。根本问题时float类型或者double类型的浮点数在计算机中不能精确储存。              单精度浮点型(float)存储方式比如,若我们希......
  • 【实例】Verilog对数据进行四舍五入(round)与饱和(saturation)截位
    转自https://blog.csdn.net/yan1111112/article/details/118498533重点:1、正数截位:直接看截掉的最高位是不是一,是的话进一。   负数截位:截的最高位为1且其它位不全是0进一2、饱和,也就是大于求的结果,整数变为符号位为0,其它位为1;负数变成第一位为1,其它位为0. 一、引言......
  • verilog实现 floor, round 四舍五入 和 saturation 操作
    floor,round和saturation是进行bit位削减时常用的方法,floor和round用于削减低位,saturation用于削减高位。floor和round的区别在于,floor是将低位直接丢掉,而round则是在丢掉低位前先进行四舍五入。round和saturation的使用范例如下: 假设有一个32bit有符号数a[31:0],其低10bit......
  • C# double decimal 四舍五入
    传送门usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;publicclassProgram{publicstaticvoidMain(){//先看看double类型通过Math.Round取两位小数得到什么Console.WriteLine(Math.Round(2.345d,2));//2.35//再看看de......