gpt4 book ai didi

c++ - 我如何在 C++ 中对包含 double 值的字符串强制执行精度

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:19:21 24 4
gpt4 key购买 nike

示例输入字符串:

char *str = "12345.567675";

如果我需要小数点后 3 位的精度,则需要输出:

str = "12345.568";

有没有办法在不将字符串转换为 double 然后再转换回字符串的情况下执行此操作?

最佳答案

是的,在高层:
1. 搜索“.”在字符串中。
2.如果'.'的位置+ 3 小于你做的长度。
3.否则,在'.'位置连接字符串+ 3.
4. 这里有点棘手:你需要检查下一个字符是否存在,('.' + 4),如果它的值 >= 5 则转到 4.1(否则转到 5)
4.1.将字符串复制到左侧多一个空格的新字符串(因为在“4”循环中 9.9999 将更改为 10.0000)并设置指向该字符串中最后一个字符的指针 (P)。
4.2.如果 *P 在 0 到 8 之间,则加 1 并转到 5。
4.3.如果 *P 为 9,将其设置为零,将指针向左移动一位 (-1) 并转到 4.2
4.4.如果 *P 是 '.',将指针向左移动一位 (-1) 并转到 4.2
5. 删除小数点右边的所有 0(如果需要,删除小数点本身),你就完成了!!!
6.删除所有内容,并使用双重转换方法...

关于c++ - 我如何在 C++ 中对包含 double 值的字符串强制执行精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10012594/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com