From 10ec12c2dfa91693abc49e2a29284c06b010f1d1 Mon Sep 17 00:00:00 2001 From: Yunhee Seo Date: Mon, 23 Sep 2024 11:25:21 +0900 Subject: [Power] Fix variable type to avoid invalidation [Bug] Double can be represented with some inaccuracy e.g. 30.0 can be 29.999999 which in case of casting to int is casted to 29 instead of 30 as expected. [Solution] Added std round to proper round double value to closest inteager instead of cutting of the decimal part of number. Change-Id: I20e889df9d6a0ff4434fc18b77016287f0bd45c7 Signed-off-by: Yunhee Seo --- src/power/power_manager.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/power/power_manager.cc b/src/power/power_manager.cc index 4973b0c4..db0b4fc6 100644 --- a/src/power/power_manager.cc +++ b/src/power/power_manager.cc @@ -183,7 +183,7 @@ PlatformResult PowerManager::SetScreenBrightness(double brightness) { return result; } - int platform_brightness = (int)(brightness * max_brightness_); + int platform_brightness = std::round(brightness * max_brightness_); if (0 == platform_brightness) { // The value '0' on native level is treated as setting ScreenState to "SCREEN_DIM", thus the // brightness values come from range from 1 to max_brightness_ (which is usually equal to -- cgit v1.2.3