gpt4 book ai didi

将长浮点值截取至小数点后 2 位并复制到字符数组

转载 作者:行者123 更新时间:2023-11-30 15:10:32 26 4
gpt4 key购买 nike

我需要将长整型浮点值转换为字符数组,我需要这样做,因为设备 API 仅接受这样的调用

enter image description here

我有这样的 200.56866 我需要一个像 200.56 这样的值。

我尝试这样做

    char buf1[sizeof(int)*3+2]="";
snprintf(buf1, sizeof buf1, "%f", balance1);

但是转换会产生一些随机值。我怎样才能正确地做到这一点?

编辑:这个问题与单独截断小数值无关..它主要涉及将 float 复制到 char 数组的问题。

最佳答案

尝试将第二行更改为 snprintf(buf1, sizeof buf1, "%.2f", Balance1);。另外,为什么要声明使用该特定表达式分配缓冲区的存储量?

编辑@LưuVĩnhPhúc 在下面的评论中提到,我原来的答案中的格式说明符将四舍五入而不是截断,因此基于 How to cut decimal off without rounding in C您可以执行以下操作:

float balance = 200.56866;
int tmp = balance1 * 100;
float balance1 = tmp / 100.0;
char buf1[sizeof(int)*3+2]="";
snprintf(buf1, sizeof buf1, "%.2f", balance1);

关于将长浮点值截取至小数点后 2 位并复制到字符数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36082408/

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