我有一个BigDecimal,其值为450.90,我想要向上舍入到下一个空洞整数值,然后打印没有任何小数点的整数值,就像这样;
Val:450.90 - > Rounded:451.00 - >输出:451
Val:100.00001 - > Rounded:101.00000产量:101
检查了一些解决方案,但我没有得到预期的结果,继承我的代码;
BigDecimal value = new BigDecimal(450.90);
value.setScale(0, RoundingMode.HALF_UP); //Also tried with RoundingMode.UP
return value.intValue();
Run Code Online (Sandbox Code Playgroud)
谢谢!
我正在使用JSF 2.2 + Primefaces开发WebApp ...项目正在快速增长,并且第一次性能测试非常差(由于我对JSF LifeCylce在非功能性需求方面的知识不足 - 即完全是ajax网站),然后我们可以改善一点,但结果仍然不如预期.(根据动作,我们有300~1500毫秒的时间,想法是性能大约500毫秒,给予或采取).主要是恢复视图阶段和渲染响应是消费者(在其他情况下,花费的时间毫无价值)的时间.对于某些操作,Invoke Aplication也需要时间(由于DB调用).
在网上阅读了很多文章后,有很多很棒的技巧要考虑(当然很多来自stackoverflow),例如:
- 改善数据库查询
我们有一些复杂的,用两个Hibernate Criterias查询完成,所以我们在这里工作.(也许使用纯SQL查询,复杂的查询使用子查询?)
- 永远不要在Bean的getter上定义业务逻辑
得到它了!
- 将适当的范围设置为bean并在其上存储只不过是必要的东西
我们有一个完整的ajax站点,所以View Scoped几乎就像Session Scoped一样,我们使用SessionBeans作为一种'Cache'来存储我们不希望每次都从DB获取的关键数据+定义业务逻辑这里.
- 选择正确的JSF状态保存方法 - 客户端Vs服务器
为此,我需要进行更多的研究,检查各种可能性的优缺点,然后测试每一种的可能性.
到目前为止非常清楚,现在一些额外的提示我对此有些怀疑.
- 尽可能使用vanilla HTML,最好使用h:标签而不是p:标签
简单的HTML是清楚的,有意义的,现在在h:和p之间:它值多少钱?例如.
<p:commandButton value="Value"
styleClass="class"
actionListener="#{myBean.doStuff()}"
ajax="true" process="@form" update="@form"
onsuccess="jsFunction()" />
Run Code Online (Sandbox Code Playgroud)
VS
<h:commandButton value="Value"
styleClass="class"
actionListener="#{myBean.doStuff()}" >
<f:ajax execute="@form" render="@form" event="onclick" />
</h:commandButton>
Run Code Online (Sandbox Code Playgroud)
要么
<ui:fragment... vs <p:fragment...
Run Code Online (Sandbox Code Playgroud)
要么
<p:outputLabel value="#{myBean.value}" rendered="#{myBean.shouldRender}" />
Run Code Online (Sandbox Code Playgroud)
VS
<ui:fragment rendered="#{myBean.shouldRender}">
<label>#{myBean.value}</label>
</ui:fragment>
Run Code Online (Sandbox Code Playgroud)
我一直在使用Primefaces和Jsf标签以及一些简单的HTML混合使用了一段时间.(主要是PF由于其组件的功能)我现在普通的HTML总是会更快,但在JSF和另一个框架之间?如果我这样做,改变它将花费大量时间,我不希望知道它的结果根本没有相关的差异.
- 自定义Facelets标记与复合组件
我认为这是关键.对它们的差异仍有一些疑问,在两者的实现上,CC使用起来非常简单和灵活,但缺点是它们完全包含在ViewTree和JSF为每个请求重新生成(如果我没有记错的话) ,而自定义标签使用起来似乎有点复杂(不是那么多),但其优势在于ViewTree上只包含了实际呈现的内容,仅此而已,使RESTORE VIEW更省时.我们有几个复合组件,没有Facelets标签,所以这里要做很多工作.我还没有找到一篇很好的文章解释它们之间的差异,当一个应该被使用时和另一个(已经读过输入,消息使用TAGS和更复杂的东西CC).如果想要更喜欢标签与CC,那么我将没有选择而不是使用CC?在CC中使用自定义标签是否可以使它们更轻松地用于处理它们?
我即将进入修改孔项目的旅程,以获得更好的性能,这将花费我几天的时间,想法是这次获得更好的结果; 所以每个提示,建议和建议都非常欢迎!谢谢你们的时间!
我有一个要调用的可观察对象列表,我正在使用 concat 来逐个执行它们,问题是我想在收到一个结果后的某个时刻停止 concat 执行
const list = [
this.http.get('someurl'),
this.http.get('someurl'),
this.http.get('someurl'),
...
];
concat(list).subscribe((result) => {
if(result === 3){
//stop concat and return
}
});
Run Code Online (Sandbox Code Playgroud) angular ×1
bigdecimal ×1
java ×1
jsf ×1
jsf-2 ×1
math ×1
performance ×1
primefaces ×1
rounding ×1
rxjs ×1
typescript ×1