none
DDX_Text获取double型数据错误 RRS feed

  • 问题

  • 我用CEdit关联一个CSpinButtonCtrl。CEdit的Number属性设置为True。

    在DoDataExchange中用一个double变量获取CEdit中的值。

    此时如果CEdit中的值如果有逗号,则只能获取逗号前面的部分,请问如何解决?

    例如:CEdit中的值显示为:2,417。此时应该获取值为"2417",结果仅返回"2"。

    请问这个问题如何解决?

    2016年10月24日 3:09

答案

  • Hi BruceLiu_sh,

    感谢在MSDN论坛发帖。

    >>此时如果CEdit中的值如果有逗号,则只能获取逗号前面的部分,请问如何解决?

    例如:CEdit中的值显示为:2,417。此时应该获取值为"2417",结果仅返回"2"。

    请问这个问题如何解决?

    建议你先使用CString接收数据,然后使用以下代码将CString转为double。

    double a;
    CString b = "2,324";
    b.Replace(_T(","), _T(""));
    a = _wtof(b);

    希望对你有所帮助。

    Best Regards,

    Sera Yu


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    • 已标记为答案 BruceLiu_sh 2016年10月25日 10:49
    2016年10月24日 10:25

全部回复

  • Hi BruceLiu_sh,

    感谢在MSDN论坛发帖。

    >>此时如果CEdit中的值如果有逗号,则只能获取逗号前面的部分,请问如何解决?

    例如:CEdit中的值显示为:2,417。此时应该获取值为"2417",结果仅返回"2"。

    请问这个问题如何解决?

    建议你先使用CString接收数据,然后使用以下代码将CString转为double。

    double a;
    CString b = "2,324";
    b.Replace(_T(","), _T(""));
    a = _wtof(b);

    希望对你有所帮助。

    Best Regards,

    Sera Yu


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    • 已标记为答案 BruceLiu_sh 2016年10月25日 10:49
    2016年10月24日 10:25
  • 这种方式倒是可以,不知道有没有更忧的方法。毕竟数字里面有逗号也是常见的表现形式,按说可以有直接能转换的方法
    2016年10月25日 10:45