c++ - G4GMLParser 评估器:语法错误 C++
问题描述
我正在尝试使用 G4GDMLParser 读取 GDML 文件:
...
G4GDMLParser parser;
parser.Read(G4Str_Filename, fValidate);
但它给出了一个错误:
...
G4GDML: Reading materials...
G4GDML: Reading solids...
Evaluator : syntax error
-------- EEEE ------- G4Exception-START -------- EEEE -------
*** G4Exception : InvalidExpression
issued by : G4GDMLEvaluator::Evaluate()
Error in expression: 40.0
*** Fatal Exception *** core dump ***
**** Track information is not available at this moment
**** Step information is not available at this moment
-------- EEEE -------- G4Exception-END --------- EEEE -------
*** G4Exception: Aborting execution ***
Signal: SIGABRT (Aborted)
我尝试将 GDML 文件放在可执行文件旁边,但没有帮助。
解决方案
我发现问题是我的语言环境 TR 使用 " , "不是 " . " 用于浮点数,只需在代码中的某个位置设置您的语言环境;
std::setlocale(LC_ALL, "en_US.UTF-8");
std::setlocale(LC_NUMERIC, "en_US.UTF-8");
推荐阅读
- c# - 有没有更优雅的方法来使用 system.text.json 从 JSON 对象获取特定值
- wpf - Prism CustomRegionAdapter,允许多个
- python - python中两个列表的排列而不使用python中的itertools组合或合并列表可能吗?
- crystal-reports - 水晶报表返回一个空白,当预期返回应该是一个日期
- python - 关于在可编辑的 PDF 文件中填写表格的问题
- linux - 当 Windows PATH 的文件夹名称带有空格时,WSL(Windows 子系统 linux)会中断 $PATH
- javascript - 无法在 React Native 中使用 Font Awesome 图标
- sql - 将三列转换为行的百分比
- r - 根据频率更改 R 中数据帧的值
- javascript - 如何保持按钮的边框显示并在单击其他区域后消失