mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 07:27:45 +00:00
Calculator: Improve KeypadValue conversion to handle integer values
This commit is contained in:
parent
8f060bed17
commit
8936d15efa
1 changed files with 5 additions and 2 deletions
|
@ -105,9 +105,12 @@ KeypadValue::KeypadValue(double d)
|
|||
while (AK::pow(10.0, (double)current_pow) <= d)
|
||||
current_pow += 1;
|
||||
current_pow -= 1;
|
||||
while (d != 0) {
|
||||
double epsilon = 1e-6;
|
||||
while (d >= epsilon || current_pow >= 0) {
|
||||
m_value *= 10;
|
||||
m_value += (u64)(d / AK::pow(10.0, (double)current_pow)) % 10;
|
||||
i8 digit = (u64)(d * AK::pow(0.1, (double)current_pow)) % 10;
|
||||
m_value += digit;
|
||||
d -= digit * AK::pow(10.0, (double)current_pow);
|
||||
if (current_pow < 0)
|
||||
m_decimal_places += 1;
|
||||
current_pow -= 1;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue