首页 > 解决方案 > cpprestsdk 为什么 C++ 中的浮点数不准确而失去精度?

问题描述

我正在使用 VS 2015 并且 cpprestsdk 版本是 2.10.16,我试图用 cpprestsdk 发送一个 Json 数组,当我尝试将字符串解析为 json 时出现问题,它们失去了精度

   wstring postclinicdetailjsonwstr;
   charstarconvertwstr(post_clinic_detail, postclinicdetailjsonwstr);//convert std::string to wstring
   utility::stringstream_t s;
   s << postclinicdetailjsonwstr;
   web::json::value diseinfoarr = json::value::parse(s);

post_clinic_detail 是一个 std::string ,内容是

[{"medins_list_codg":"10090971","det_item_fee_sumamt":21.38,"cnt":1,"pric":21.38}]

之后我尝试将此json值添加到antoher json并尝试对其进行序列化,猜猜是什么,它失去了精度

   dataitem[L"feedetail"] = json::value(diseinfoarr);
   wstring jsonwstrtosend=dataitem.serialize();

jsonwstrtosend 的内容是……

[{"medins_list_codg":"10090971","det_item_fee_sumamt":21.379999999999999,"cnt":1,"pric":21.379999999999999}]

知道如何处理此类问题吗?

标签: visual-c++doubleprecision

解决方案


推荐阅读