【发布时间】:2016-07-15 14:48:35
【问题描述】:
我想知道在用C编写代码时解析字符串并将数字字符串内容转换为double值是否会带来任何准确性问题?
如果有,它们是什么样的?
同样,将双精度值转换为字符串有什么问题吗?
如果有问题,最好的解决方案是什么?
谢谢。
【问题讨论】:
标签: string
我想知道在用C编写代码时解析字符串并将数字字符串内容转换为double值是否会带来任何准确性问题?
如果有,它们是什么样的?
同样,将双精度值转换为字符串有什么问题吗?
如果有问题,最好的解决方案是什么?
谢谢。
【问题讨论】:
标签: string
atof 不会造成准确性问题;但是,如果字符串表示超出范围的双精度值,则会导致未定义的行为(来自this source)。
sprintf 同样会产生准确的结果,只要您加载数据的缓冲区足够大 (sprintf)。
【讨论】:
同时考虑使用strtod,它似乎对错误输入有更好的定义,尤其是在 C11 中。
【讨论】: