Java 在HTML中显示数据时,四舍五入为1位小数

Java 在HTML中显示数据时,四舍五入为1位小数,java,html,jquery,web-applications,Java,Html,Jquery,Web Applications,我正在创建一个基本的web应用程序,它在HTML表中显示一些计算的结果 现在我只想显示小数点后1位,但同时将计算结果保留在后端,将所有小数保留在内存中 <tr th:each="value : ${allvalues}"> <td th:text="${value.firstNumber}" ></td> <td th:text="${value.secondNumber}"

我正在创建一个基本的web应用程序,它在HTML表中显示一些计算的结果

现在我只想显示小数点后1位,但同时将计算结果保留在后端,将所有小数保留在内存中

<tr th:each="value : ${allvalues}">
    <td  th:text="${value.firstNumber}" ></td>
    <td  th:text="${value.secondNumber}" ></td>
</tr>
访问包含HTML表的页面时出现的错误如下:

2021-02-23 12:23:18.458 ERROR 22364 --- [apr-8080-exec-6] org.thymeleaf.TemplateEngine             : [THYMELEAF][http-apr-8080-exec-6] Exception processing template "index": Exception evaluating SpringEL expression: "@mathUtils.formatNumber(value.firstNumber)" (index:187)
Caused by: org.springframework.expression.AccessException: Could not resolve bean reference against BeanFactory
        at org.springframework.context.expression.BeanFactoryResolver.resolve(BeanFactoryResolver.java:48) ~[spring-context-4.3.8.RELEASE.jar:4.3.8.RELEASE]
        at org.springframework.expression.spel.ast.BeanReference.getValueInternal(BeanReference.java:55) ~[spring-expression-4.3.8.RELEASE.jar:4.3.8.RELEASE]
        ... 100 common frames omitted
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'mathUtils' available
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:687) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1207) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:284) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE]
        at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1081) ~[spring-context-4.3.8.RELEASE.jar:4.3.8.RELEASE]
很可能bean定义或注册有问题。我试着自己弄明白,但没有任何有用的结果

在一个尝试性的解决方案中,我还将@Bean放在公共字符串formatNumber(double number)之前,但是该项目甚至没有部署到我的Tomcat本地服务器上,并给出了一个错误“考虑在配置中定义一个'double'类型的Bean。”

也许你的意思是这样的

$("th").each(function() {
  const val = this.textContent;
  if (!isNaN(val)) this.textContent = Number(val).toFixed(1)
})

假设这个问题是关于使用thymeleaf执行此操作的:

注册bean:

@SpringBootApplication
public class StartWebApplication {

    public static void main(String[] args) {
        SpringApplication.run(StartWebApplication.class, args);
    }

    @Bean
    public MathUtils mathUtils() {
        return new MathUtils();
    }

    public static class MathUtils {

        public String formatNumber(double number) {
            // or any other way to get 1 decimal place
            return new DecimalFormat("#.#").format(number);
        }
    }
}
在模板中使用:

<tr th:each="value : ${allvalues}">
    <td  th:text="${@mathUtils.formatNumber(value.firstNumber)}" ></td>
    <td  th:text="${@mathUtils.formatNumber(value.secondNumber)}" ></td>
</tr>


请用值显示呈现的HTML。您没有向我们展示何时以及如何解析它,这可能应该有javascript标记,而不是java标记。Java与javascript没有关系。是。问题是如何用百里叶来做这件事。很抱歉没有具体说明。我现在在bean配置方面遇到了问题。我已经用我放置bean的代码片段更新了我的问题。@若将组件放在单独的文件中,它应该可以工作。我在编辑示例中添加了如何在StartWebApplication主类中执行此操作
<tr th:each="value : ${allvalues}">
    <td  th:text="${@mathUtils.formatNumber(value.firstNumber)}" ></td>
    <td  th:text="${@mathUtils.formatNumber(value.secondNumber)}" ></td>
</tr>