coolcxm 发表于 2016-12-8 09:28:47

char* 怎么转成float啊

我用atof转出来后只有2位小数啊,精度不够

char *c = "0.16794";
float e;
e = atof(c);
Serial.print(e);

转后成了 0.17了,又四舍五入,又只有2位

ofourme 发表于 2016-12-8 21:15:41

看手册:http://wiki.geek-workshop.com/doku.php?id=arduino:arduino_language_reference:serial_print

也可以自己定义输出为几进制(格式);可以是BIN(二进制,或以2为基数),OCT(八进制,或以8为基数),DEC(十进制,或以10为基数),HEX(十六进制,或以16为基数)。对于浮点型数字,可以指定输出的小数数位。例如

Serial.print(78,BIN)输出为“1001110”
Serial.print(78,OCT)输出为“116”
Serial.print(78,DEC)输出为“78”
Serial.print(78,HEX)输出为“4E”
Serial.println(1.23456,0)输出为“1”
Serial.println(1.23456,2)输出为“1.23”
Serial.println(1.23456,4)输出为“1.2346”

coolcxm 发表于 2016-12-8 22:39:54

ofourme 发表于 2016-12-8 21:15
看手册:http://wiki.geek-workshop.com/doku.php?id=arduino:arduino_language_reference:serial_print

...

我不是指输出啊,我是内部数据要用,能这样吗
页: [1]
查看完整版本: char* 怎么转成float啊