当前位置: 首页 > 知识库问答 >
问题:

在json String-FreeMarker中处理科学表示法中的长数字

凌翔宇
2023-03-14

我有一个json字符串,它包含一个很长的数字,但用科学符号表示(比如1.559101974041e12而不是1559101974041)。由于这个原因,我不能使用?eval解析它,因为这个值必须在双引号中才能被解析

我想到了一个解决方案,比如使用regex在它们周围加上双引号,然后对它们进行评估。之后,使用一些自由标记方法将值转换为long。但这种解决方案风险很大,还会改变其他值。

共有1个答案

常源
2023-03-14

我不确定模板看起来如何,但是如果变量s包含字符串“1.559101974041 e12”(引号不是字符串值本身的一部分),那么可以像s?number那样解析它。s?eval不起作用,因为科学符号不是FreeMarker语法的一部分(但是?number可以解析更多格式)。

如果要在模板中重新打印数字,请注意,根据区域设置和配置设置,数字可能类似于1,559,101,974,041。您可以通过?c(例如${s?number?c})来防止这种情况,在这种情况下,它将始终类似于1559101974041

 类似资料:
  • 问题内容: 当数字变大时,JavaScript会将 大INT 转换为 科学计数法 。如何防止这种情况发生? 问题答案: 有Number.toFixed,但如果数字>=1e21且最大精度为20,它将使用科学计数法。除此之外,您可以自己滚动,但会很混乱。 上面使用便宜的’n’-简单字符串重复()。您可以定义使用俄罗斯农民乘法,而改为使用它。 此答案应仅适用于以下问题:显示大量而不使用科学计数法。除此之

  • 问题内容: 允许用户输入他们喜欢的任何数学方程式(带有一个变量): 这些作为字符串存储在数据库中。检索它们后,我需要用“ x”代替一个数字并检查方程式的值。 我该怎么办? 我当时正在考虑编写一个解析器来解构字符串并将其转换为方程式,但是这听起来很昂贵且存在问题。另一个选择是让它们通过eval(但是如果可以帮助的话,我不是使用eval的忠实粉丝)。 有任何想法吗? 更新:我还需要能够获得类似“(x>

  • 问题内容: 我该如何显示: 十进制(‘40800000000.00000000000000’)为‘4.08E + 10’? 我已经试过了: 但是它有那些额外的0。 问题答案: 在您的“ 40800000000.00000000000000”中,有许多更重要的零,其含义与任何其他数字相同。这就是为什么您必须明确告诉您要在哪里停止的原因。 如果要自动删除所有尾随零,可以尝试:

  • Statistical learning Machine learning is a technique with a growing importance, as the size of the datasets experimental sciences are facing is rapidly growing. Problems it tackles range from building

  • 问题内容: 考虑以下Python代码段: 它生成以下输出: 我的问题是-是否可以以某种方式“返回”?那是: …我要指定指数为“ ”;然后我在这个假设函数上抛出的任何数字都返回该指数中的数字值?在每种情况下是否都可以为整个和小数部分都指定零填充?(即和)? 问题答案: 自己进行格式化(请参阅格式化规范的迷你语言): 输出量 说明 表示“零填充,在符号和数字之间填充,字段总宽度为8,在小数点后3个位,

  • 如何抑制FreeMarker模板错误?我在这里查看:http://freemarker.sourceforge.net/docs/pgui_config_errorhandling.html,但我不明白如何“templateexceptionhandler.ignore_handler”我正在使用Struts2,还如何显示另一个ftl页面,而不是显示堆栈跟踪? 这仅仅是把这条线放在正确的位置上的问