cmake - 如何在cmake表达式中添加和乘以实数
问题描述
我正在对 cmake 中的浮动变量进行以下操作。
我阅读了较早的堆栈溢出 cmake 帖子并修改了我的代码以执行以下表达式。但我没有得到预期的结果:
结果:
### RESULT 30
### A 20.0
预期成绩:
### RESULT 30.0
### A 20.0
制作
set(A 20.0)
set(B 80.0)
set(loop 1 ) #0 1 2 3 4 5)
function(ARTH_OPER expr output)
execute_process(COMMAND awk "BEGIN {print ${expr}}" OUTPUT_VARIABLE __output)
set(${output} ${__output} PARENT_SCOPE)
endfunction()
foreach(loop_val ${loop})
ARTH_OPER("${A} + ${loop_val} * 10" RESULT)
message("### RESULT ${RESULT}")
message("### A ${A}")
endforeach(loop_val)
我怎样才能得到预期的结果。
解决方案
您可以使用awk
'printf
函数并使用%f
格式字符串来打印浮点数并.1
使用一位小数进行打印。结合起来变成%.1f
:
execute_process(COMMAND awk "BEGIN {printf(\"%.1f\", ${expr})}" OUTPUT_VARIABLE __output)
推荐阅读
- python - 在每个列表理解迭代中调用一个函数
- php - 如何在 Safari 浏览器中隐藏推荐人?
- javascript - 如何使用 angularjs 将 $scope 变量从控制器传递到指令
- android - 通过在 observeAsState 上委托数据类
- python-3.x - 我应该在安装 Python 3.8 或更新版本时删除 Python 3.6 吗?
- javascript - 为什么在我尝试为导航栏设置动画后,我的 GSAP 滑块动画停止工作
- java - Java Ejb 计划没有被触发
- python - 如何使用二级索引列表索引 Pandas 数据框?
- java - 如何从android中的执行函数中获取返回值?
- java - 如何使用附加插件在本地运行 job-dsl-plugin