Description
Basic Infos
- [x ] This issue complies with the issue POLICY doc.
- [x ] I have read the documentation at readthedocs and the issue is not addressed there.
- [x ] I have tested that the issue is present in current master branch (aka latest git).
- [x ] I have searched the issue tracker for a similar issue.
- If there is a stack dump, I have decoded it.
- [x ] I have filled out all fields below.
Platform
- Hardware: [ESP-12]
- Core Version: [2.6.3]
- Development Env: [Arduino IDE|]
- Operating System: [Windows]
Settings in IDE
- Module: [Generic ESP8266 Module]
- Flash Mode: [qio|dio|other]
- Flash Size: [4MB/1MB]
- lwip Variant: [v1.4|v2 Lower Memory|Higher Bandwidth]
- Reset Method: [ck|nodemcu]
- Flash Frequency: [40Mhz]
- CPU Frequency: [80Mhz|160MHz]
- Upload Using: [OTA|SERIAL]
- Upload Speed: [115200|other] (serial upload only)
Problem Description
When using a type cast to cast an float to a String like:
String(pressure, 0)
the result is not rounded correctly.
If I make a type cast like this:
String(pressure, 1)
the result is rounded correctly.
MCVE Sketch
#include <Arduino.h>
void setup() {
Serial.begin(115200);
while (!Serial) yield();
int a = 1014;
float b = 1014.45;
float c = 1014.5;
Serial.println();
Serial.println(a);
Serial.println();
Serial.println(b, 1);
Serial.println(String(b,1));
Serial.println();
Serial.println(c, 0);
Serial.println(String(c ,0));
}
void loop() {
}
Debug Messages
1014
1014.5
1014.5
1015
1014