# sprintf(buff, "%.0f", floatValue)

**URL:** <https://forum.arduino.cc/t/sprintf-buff-0f-floatvalue/612073>\
**Category:** Deutsch\
**Created:** [September 23, 2019, 2:24pm UTC](https://forum.arduino.cc/t/sprintf-buff-0f-floatvalue/612073 "2019-09-23T14:24:19Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![freddy64](https://avatars.discourse-cdn.com/v4/letter/f/df788c/32.png) [@freddy64](https://forum.arduino.cc/u/freddy64)\
**Post date:** [September 23, 2019, 2:24pm UTC](https://forum.arduino.cc/t/sprintf-buff-0f-floatvalue/612073/1 "2019-09-23T14:24:19Z")

</div>

Hallo zusammen,  
wird in diesem Fall gerundet oder werden nur die Kommastellen entfernt?

Gruß  
Fred

---

<div class="post-metadata">

**Author:** ![postmaster-ino](https://avatars.discourse-cdn.com/v4/letter/p/977dab/32.png) [@postmaster-ino](https://forum.arduino.cc/u/postmaster-ino)\
**Post date:** [September 23, 2019, 2:36pm UTC](https://forum.arduino.cc/t/sprintf-buff-0f-floatvalue/612073/2 "2019-09-23T14:36:47Z")

</div>

Hi

Versuch's doch aus und sage uns, was Du herausgefunden hast.  
Bauchgefühl: Kommastellen werden abgeschnitten (ist einfacher, als Runden)

MfG

---

<div class="post-metadata">

**Author:** ![Tommy56](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/tommy56/32/232943_2.png) [@Tommy56](https://forum.arduino.cc/u/Tommy56)\
**Post date:** [September 23, 2019, 2:50pm UTC](https://forum.arduino.cc/t/sprintf-buff-0f-floatvalue/612073/3 "2019-09-23T14:50:13Z")

</div>

Welcher MC? Auf arduino ist standardmäßig die Unterstützung für float in sprintf nicht enthalten.

Gruß Tommy

---

<div class="post-metadata">

**Author:** ![freddy64](https://avatars.discourse-cdn.com/v4/letter/f/df788c/32.png) [@freddy64](https://forum.arduino.cc/u/freddy64)\
**Post date:** [September 23, 2019, 3:04pm UTC](https://forum.arduino.cc/t/sprintf-buff-0f-floatvalue/612073/4 "2019-09-23T15:04:10Z")

</div>

Der BME280 ist nicht im Haus, dass ich schnell mal mit Serial.print() testen könnte.  
Das ganze Zeugs mit ESP32 & Co. läuft gerade super stabil und ich will unbedingt die 49 Tage Grenze der millis() überschreiten, um zu sehen was die runtime() von fipsok (wie in seiner Zeitschaltuhr) dann liefert.

Der Luftdruck wird als float vom Sensor geliefert.

```cpp
float BME280::readPressure() {
.....
p = ((p + var1 + var2) >> 8) + (((int64_t)_bme280_calib.dig_P7)<<4);
    return (float)p/256;
}

```

}  
Wer braucht schon den Luftdruck als float außer Wetterdienst, Luft- und Raumfahrt...  
Für eine Heim-Wetterstation reicht auch ein unsigned int.

Ahhh, einen hab ich noch (am Raspi). Dann muss der halt dran glauben.

---

<div class="post-metadata">

**Author:** ![freddy64](https://avatars.discourse-cdn.com/v4/letter/f/df788c/32.png) [@freddy64](https://forum.arduino.cc/u/freddy64)\
**Post date:** [September 23, 2019, 3:05pm UTC](https://forum.arduino.cc/t/sprintf-buff-0f-floatvalue/612073/5 "2019-09-23T15:05:56Z")

</div>

@Tommy56  
ESP32

---

<div class="post-metadata">

**Author:** ![Tommy56](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/tommy56/32/232943_2.png) [@Tommy56](https://forum.arduino.cc/u/Tommy56)\
**Post date:** [September 23, 2019, 3:39pm UTC](https://forum.arduino.cc/t/sprintf-buff-0f-floatvalue/612073/6 "2019-09-23T15:39:22Z")

</div>

Was hindert Dich daran es einfach mit einer festen Eingabe zu testen?

```cpp
Serial.printf("%.02f",123.4567);

```

Gruß Tommy

---

<div class="post-metadata">

**Author:** ![noiasca](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/noiasca/32/1126910_2.png) [@noiasca](https://forum.arduino.cc/u/noiasca)\
**Post date:** [September 23, 2019, 3:41pm UTC](https://forum.arduino.cc/t/sprintf-buff-0f-floatvalue/612073/7 "2019-09-23T15:41:40Z")

</div>

> Der BME280 ist nicht im Haus, dass ich schnell mal mit Serial.print() testen könnte.

brauchst ja auch gar keinen BME dazu.  
Definier dir ein float, gib ihm einen Wert,  
druck in über sprintf aus und schau, was du als Ergebnis bekommst.  
oder kurz so - wie Tommy sagt 😉

---

<div class="post-metadata">

**Author:** ![freddy64](https://avatars.discourse-cdn.com/v4/letter/f/df788c/32.png) [@freddy64](https://forum.arduino.cc/u/freddy64)\
**Post date:** [September 23, 2019, 5:15pm UTC](https://forum.arduino.cc/t/sprintf-buff-0f-floatvalue/612073/8 "2019-09-23T17:15:55Z")

</div>

Danke Leute,  
warum mache ich nur immer Alles so kompliziert?

```cpp
float h = 1.654;
char buff[8];
sprintf(buff, "%.2f", h);
Serial.println(buff);
sprintf(buff, "%.1f", h);
Serial.println(buff);
sprintf(buff, "%.0f", h);
Serial.println(buff);

```

Ausgabe:  
1.65  
1.7  
2

...also rundet sprintf()

Das wollte ich wissen. Danke für den Wink mit dem Zaunpfahl 😉

---

<div class="post-metadata">

**Author:** ![postmaster-ino](https://avatars.discourse-cdn.com/v4/letter/p/977dab/32.png) [@postmaster-ino](https://forum.arduino.cc/u/postmaster-ino)\
**Post date:** [September 23, 2019, 6:07pm UTC](https://forum.arduino.cc/t/sprintf-buff-0f-floatvalue/612073/9 "2019-09-23T18:07:25Z")

</div>

Hi

Ebenfalls ein Danke von mir - hätte ich nicht erwartet!

MfG

---

<div class="post-metadata">

**Author:** ![agmue](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/agmue/32/750067_2.png) [@agmue](https://forum.arduino.cc/u/agmue)\
**Post date:** [September 24, 2019, 5:23am UTC](https://forum.arduino.cc/t/sprintf-buff-0f-floatvalue/612073/10 "2019-09-24T05:23:28Z")

</div>

Der Teensy 3.2 macht das auch so:

```cpp
1.65
1.7
2

```

UNO ([Quelle](http://yaab-arduino.blogspot.com/2015/12/how-to-sprintf-float-with-arduino.html)):

```cpp
 float h = 1.654;
  char str[50];
  strcpy(str, "String value using dtostrf: ");
  dtostrf(h, 2, 2, &str[strlen(str)]);
  Serial.println(str);
  strcpy(str, "String value using dtostrf: ");
  dtostrf(h, 2, 1, &str[strlen(str)]);
  Serial.println(str);
  strcpy(str, "String value using dtostrf: ");
  dtostrf(h, 2, 0, &str[strlen(str)]);
  Serial.println(str);

```

```cpp
String value using dtostrf: 1.65
String value using dtostrf: 1.7
String value using dtostrf:  2

```

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [May 6, 2021, 1:46pm UTC](https://forum.arduino.cc/t/sprintf-buff-0f-floatvalue/612073/11 "2021-05-06T13:46:36Z")

</div>


