gpt4 book ai didi

将 char A[] 转换为 double

转载 作者:太空宇宙 更新时间:2023-11-04 04:18:43 26 4
gpt4 key购买 nike

我有一个 arduino 代码,它以 char 数据类型输入音量,我想将它转换为 double ,我试过使用 atof 但它不起作用。我的代码有什么问题。对不起这里的新手!!

double v;
int data_count = 0;
int i;
char Data[16];
char volume[16];
char inputTime[16];

// Define the Keymap for Keypad
char keys[ROWS][COLS] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'.', '0', '#', 'D'}
};
lcd.setCursor(0, 0);
lcd.print("Input Volume:");

if (customKey != NO_KEY && customKey != '#'
&& customKey != 'A' && customKey != 'B' && customKey != 'C'
&& customKey != 'D') {
Data[data_count] = customKey;
lcd.setCursor(data_count, 1);
lcd.print(Data[data_count]);
data_count++;
}

if (customKey == '#') {
volumelength = data_count;
for (i = 0; i < volumelength; i++) {
volume[i] = Data[i];
}
clearData();
nextstate();
data_count = 0;
v = atof(volume);
}

最佳答案

在 arduino 语言中有 toFloat() ( https://www.arduino.cc/reference/en/language/variables/data-types/string/functions/tofloat/ )

else atof() 应该像在 avr-gcc stdlib.h 库中一样工作,用于 8 位 AVR CPU,就像在 arduino 上一样

(https://www.nongnu.org/avr-libc/user-manual/group__avr__stdlib.html):

#include <stdlib.h>

char s[] = "11.248"
double f = 0;

f=atof(s);

另见 http://www.ethernut.de/nutwiki/index.php/Converting_Strings_to_Floating_Point_Values (ethernut 用于 8 位 CPU)

可能检查 Data 的内容是否真的是一个 float ...

avr-gcc/arduino 中的另一个 atof 示例:https://forum.arduino.cc/index.php?topic=98595.0

关于将 char A[] 转换为 double,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48931886/

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