【问题标题】:Float64 to Float32Float64 到 Float32
【发布时间】:2017-02-13 02:34:42
【问题描述】:

我正在尝试向 ROS std_msgsFloat32 发送 float64 但是,它不会自动向下转换。如何安全地将 std_msgs::Float64 转换为 std_msgs::Float32?

有向下转换问题的代码:

//currentLocation.theta is a Float64, thetaPublish accepts Float32
thetaPublish.publish(currentLocation.theta);

【问题讨论】:

    标签: c++ ros


    【解决方案1】:

    你应该可以这样做:

    std_msgs::Float32 theta32;
    theta32.data = static_cast<float>(theta.data);
    thetaPublish.publish(theta32);
    

    您只需将双精度 data 显式复制到浮点数。

    【讨论】:

    • 谢谢,我现在就测试一下!
    • 从类型“std_msgs::Float64”到类型“float”的无效转换 theta32.data = (float) theta.data
    • 嗯,不管有没有演员,都适合我。如果这是一个因素,我在 Linux 上使用 Indigo。试试static_cast&lt;float&gt;(theta.data),以防万一某处有奇怪的宏。
    • 谢谢,当我回到家时我会尝试我的靛蓝。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-15
    • 2016-06-14
    • 1970-01-01
    • 2023-02-07
    • 2019-05-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多