boost :: lexical_cast <int>(“ -138.8468953457983248”)引发异常

用户名

我正在尝试将此数字转换为整数。但是我抛出了bad_cast异常。我不确定发生了什么。

马丁·约克

那是因为价值

-138.8468953457983248

不是整数。

您需要将其转换为浮点值。

    int a = static_cast<double>("-138.21341535");
                 //     ^^^^^^   Cast to double
 // ^^^  You can assign double to an int

词法转换将尝试使用字符串中的所有字符。如果还有剩余,那是一个糟糕的选择。当您尝试将以上内容转换为整数时,它会读取“ -138”,但在转换缓冲区中留下“ .21341535”,这会生成异常。

#include <boost/lexical_cast.hpp>

int main()
{
    std::cout << "Try\n";
    try
    {
        std::cout << boost::lexical_cast<int>("-138.8468953457983248") << "\n";
    }
    catch(boost::bad_lexical_cast const& e)
    {
        std::cout << "Error: " << e.what() << "\n";
    }
    std::cout << "Done\n";
    std::cout << "Try\n";
    try
    {
        std::cout << boost::lexical_cast<double>("-138.8468953457983248") << "\n";
    }
    catch(boost::bad_lexical_cast const& e)
    {
        std::cout << "Error: " << e.what() << "\n";
    }
    std::cout << "Done\n";
}

这个 :

> g++ lc.cpp
> ./a.out 
Try
Error: bad lexical cast: source type value could not be interpreted as target
Done
Try
-138.847
Done

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

boost :: lexical_cast <int>(“ -138.8468953457983248”)引发异常

来自分类Dev

为什么boost :: lexical_cast即使转换了值也会引发异常?

来自分类Dev

使用boost :: iterator_range的boost :: lexical_cast <int>产生了意外结果

来自分类Dev

boost :: lexical_cast是线程安全的吗?

来自分类Dev

boost :: lexical_cast <>的语言环境不变保证

来自分类Dev

通过boost :: lexical_cast添加类型进行转换(segfault)

来自分类Dev

对boost :: property_maps中的枚举进行专门化的boost :: lexical_cast

来自分类Dev

如何将boost :: lexical_cast与folly :: fbstring一起使用?

来自分类Dev

检查类型是否可以作为boost :: lexical_cast <string>的参数

来自分类Dev

boost :: lexical_cast与c ++ 11 stoi,stof和family冗余吗?

来自分类Dev

boost :: lexical_cast无法识别重载的istream运算符

来自分类Dev

Is boost::lexical_cast redundant with c++11 stoi, stof and family?

来自分类Dev

boost :: lexical_cast与c ++ 11 stoi,stof和family冗余吗?

来自分类Dev

std :: to_string,boost :: to_string和boost :: lexical_cast <std :: string>之间有什么区别?

来自分类Dev

使用boost :: lexical_cast将UUID转换为字符串时,出现Boost编译错误

来自分类Dev

启用boost :: lexical_cast对于小于两倍范围的值,抛出超出范围的错误

来自分类Dev

如何模拟Boost引发异常?

来自分类Dev

为什么在C ++函数boost :: algorithm :: join_中,如果引发了std :: bad_cast异常?

来自分类Dev

lexical_cast strtof strtold失去准确性吗?

来自分类Dev

int.Parse不引发异常

来自分类Dev

boost :: weak_ptr是否会引发异常?

来自分类Dev

Boost rethrow_exception引发不同类型的异常

来自分类Dev

gmp_int Boost错误

来自分类Dev

gmp_int Boost错误

来自分类Dev

为什么lexical_cast要求运算符>>必须位于匹配的名称空间中?

来自分类Dev

如何在Scala中从返回Int的递归函数引发异常

来自分类Dev

Android LinearLayout.removeViewAt(int i)引发异常?

来自分类Dev

如何在Scala中从返回Int的递归函数引发异常

来自分类Dev

对通用枚举集合应用Cast <int> .Cast <int?>会导致无效的强制转换异常

Related 相关文章

  1. 1

    boost :: lexical_cast <int>(“ -138.8468953457983248”)引发异常

  2. 2

    为什么boost :: lexical_cast即使转换了值也会引发异常?

  3. 3

    使用boost :: iterator_range的boost :: lexical_cast <int>产生了意外结果

  4. 4

    boost :: lexical_cast是线程安全的吗?

  5. 5

    boost :: lexical_cast <>的语言环境不变保证

  6. 6

    通过boost :: lexical_cast添加类型进行转换(segfault)

  7. 7

    对boost :: property_maps中的枚举进行专门化的boost :: lexical_cast

  8. 8

    如何将boost :: lexical_cast与folly :: fbstring一起使用?

  9. 9

    检查类型是否可以作为boost :: lexical_cast <string>的参数

  10. 10

    boost :: lexical_cast与c ++ 11 stoi,stof和family冗余吗?

  11. 11

    boost :: lexical_cast无法识别重载的istream运算符

  12. 12

    Is boost::lexical_cast redundant with c++11 stoi, stof and family?

  13. 13

    boost :: lexical_cast与c ++ 11 stoi,stof和family冗余吗?

  14. 14

    std :: to_string,boost :: to_string和boost :: lexical_cast <std :: string>之间有什么区别?

  15. 15

    使用boost :: lexical_cast将UUID转换为字符串时,出现Boost编译错误

  16. 16

    启用boost :: lexical_cast对于小于两倍范围的值,抛出超出范围的错误

  17. 17

    如何模拟Boost引发异常?

  18. 18

    为什么在C ++函数boost :: algorithm :: join_中,如果引发了std :: bad_cast异常?

  19. 19

    lexical_cast strtof strtold失去准确性吗?

  20. 20

    int.Parse不引发异常

  21. 21

    boost :: weak_ptr是否会引发异常?

  22. 22

    Boost rethrow_exception引发不同类型的异常

  23. 23

    gmp_int Boost错误

  24. 24

    gmp_int Boost错误

  25. 25

    为什么lexical_cast要求运算符>>必须位于匹配的名称空间中?

  26. 26

    如何在Scala中从返回Int的递归函数引发异常

  27. 27

    Android LinearLayout.removeViewAt(int i)引发异常?

  28. 28

    如何在Scala中从返回Int的递归函数引发异常

  29. 29

    对通用枚举集合应用Cast <int> .Cast <int?>会导致无效的强制转换异常

热门标签

归档