问题标签 [symja]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何在 Symja 中修复精度?
我正在使用Symja。
在http://matheclipse.org/上,当我运行以下公式时:
我得到:815.31
运行以下 Java 代码时
我得到:815.3100000000001
我错过了什么?
java - 为了与 Elasticsearch 服务器模块一起工作,需要如何使用 Gradle 导入库“Symja”?
对于我想扩展 Elasticsearch 的项目,因此需要使用包Symja。在 Symja 的 Github 中,提供了使用 Maven 的手册。
由于 Elasticsearch 存储库是使用 Gradle 构建的,因此我还需要使用 Gradle 而不是 Maven。测试建议的示例 Symja project,以下build.gradle
(我基本上是通过使用gradle init
和调整生成的)完美地导入了库:
现在,我想将 Symja 添加到我的 Elasticsearch fork 到server
模块中。
但是,当我尝试构建它时,导入
未检测到 Symja 示例:java: package org.matheclipse.parser.client does not exist
. 可能出了什么问题?
我更新build.gradle
的server
模块如下所示:
编辑:
在遵循@axelclk 的添加建议之后implementation "org.matheclipse:matheclipse-frontend:1.0.0-SNAPSHOT"
,我的 IDE 现在检测到了这些包。虽然,如果我构建build.gradle
(同时包含 Symja 示例中的方法org.elasticsearch.index.query.BoolQueryBuilder.java
),会出现以下错误:
似乎不知何故,该toString
方法无法正常工作。此外,如果我使用 运行 Elasticsearch fork gradlew run -Dtests.es.xpack.security.enabled=false -Dtests.heap.size=1G
,构建将失败并显示以下输出:
编辑2:我按照@axelclk 的建议添加implementation "org.matheclipse:matheclipse-external:1.0.0-SNAPSHOT"
和替换mavenLocal()
,mavenCentral()
这不会导致任何不同的结果。
编辑 3:我再次根据@axelclk 的建议添加了 - 由 和 的文件pom.xml
描述的实现:matheclipse-external
matheclipse-core
现在,server
构建似乎工作。但是,如果我现在使用 using 运行gradlew run -Dtests.es.xpack.security.enabled=false -Dtests.heap.size=1G
,则会有不同的任务失败:
我觉得这很好奇,因为我没有对我的 Elasticsearch 分支的这些部分进行任何更改。这里发生了什么?
编辑 4:在 Elasticsearch 的“jar hell”功能出现一些问题后,我设法在@IanGabes 的帮助下通过repositories
将build.gradle
. 问题是,Symja 类似乎还没有工作。我有一个normalize
当前执行以下操作的方法:
该方法在调用BoolQueryBuilder.doToQuery()
之前在 Elasticsearch 中addBooleanClauses
调用。现在我正在POST
学习一个BooleanQuery
. "I'm here!"
正如预期的那样,有输出。之后,会发生以下情况:
我看不出用于初始化 Symja 类的几个命令如何在这里造成任何伤害。但是当我将它们注释掉时,一切正常,所以问题似乎出在这个地方。目前包含以下依赖gradle.build
项(或分别注释掉,如果它们与不同模块的其他依赖项发生冲突):