<?php CLASS FLOAT_FIX { STATIC FUNCTION BIBI($A) { $KLAMOT = 0; FOR($I = COUNT($A) - 1; $I >= 0; $I = $I - 1) { $PASUT = FLOOR(LOG($A[$I]) / LOG(10)); WHILE($PASUT > 0) { $POW_BASE = (INT)POW(10, $PASUT); WHILE($A[$I] >= $POW_BASE) { IF(ARRAY_KEY_EXISTS($I-1, $A)) { $A[$I] -= $POW_BASE; $A[$I-1] = $A[$I-1] + $POW_BASE / 10; } ELSE { $A[$I] -= $POW_BASE; ARRAY_UNSHIFT($A, $POW_BASE / 10); $KLAMOT = $KLAMOT + 1; $I += 1; } } $PASUT = $PASUT - 1; } } RETURN ['A' => $KLAMOT, 'B' => $A]; } STATIC FUNCTION GOIA($A, $B) { $MERGED = []; FOREACH ([$A, $B] AS $KINGA) { FOREACH ($KINGA AS $KEY => $VALUE) { $MERGED[$KEY] = (STRING)((ARRAY_KEY_EXISTS($KEY,$MERGED) ? $MERGED[$KEY] : 0) + $VALUE); } } RETURN $MERGED; } STATIC FUNCTION POKAHUYA($A, $B) { FOREACH ($B[0] AS $KEY => $VALUE) { IF(!ARRAY_KEY_EXISTS($KEY, $A[0])) { RETURN FALSE; } ELSE{ IF($A[0][$KEY] != $B[0][$KEY]) RETURN FALSE; } } FOREACH ($B[1] AS $KEY => $VALUE) { IF(!ARRAY_KEY_EXISTS($KEY, $A[1])) { RETURN FALSE; } ELSE{ IF($A[1][$KEY] != $B[1][$KEY]) RETURN FALSE; } } RETURN TRUE; } STATIC FUNCTION BUBU($A) { $KOBRAKONSA = FLOAT_FIX::BIBI($A[1]); $FAKE_PO = ''; FOREACH($KOBRAKONSA['B'] AS $INT) $FAKE_PO .= $INT; IF($KOBRAKONSA['A'] > 0) { $A[0][ARRAY_KEY_LAST($A[0])] += SUBSTR($FAKE_PO, 0, $KOBRAKONSA['A']); $REAL_PO = SUBSTR($FAKE_PO, $KOBRAKONSA['A']); } ELSE { $REAL_PO = $FAKE_PO; } $KRUPIER = FLOAT_FIX::BIBI($A[0]); $REAL_PRZED = ''; FOREACH($KRUPIER['B'] AS $INT) $REAL_PRZED .= $INT; RETURN $REAL_PRZED . '.' . $REAL_PO; } STATIC FUNCTION F2A($FLOAT) { $HUGO = EXPLODE('.', (STRING)($FLOAT)); $LUNG = STRLEN($HUGO[1]); $LUMP = []; FOR($I = 0; $I < $LUNG; $I++) { $LUMP[$I] = $HUGO[1][$I]; } RETURN [[$HUGO[0]], $LUMP ]; } STATIC FUNCTION ADD($A, $B) { ECHO $A . ' + ' . $B . ' = '; $A = FLOAT_FIX::F2A($A); $B = FLOAT_FIX::F2A($B); $LGBT = [ FLOAT_FIX::GOIA($A[0], $B[0]), FLOAT_FIX::GOIA($A[1], $B[1]) ]; ECHO FLOAT_FIX::BUBU($LGBT) . '<br>' . PHP_EOL; } STATIC FUNCTION COM($A, $B) { ECHO $A . ' == ' . $B . ' = '; $A = FLOAT_FIX::F2A($A); $B = FLOAT_FIX::F2A($B); ECHO (FLOAT_FIX::POKAHUYA($A, $B) ? 'TRUE' : 'FALSE') . '<br>' . PHP_EOL; } } FLOAT_FIX::ADD('0.1', '0.2'); FLOAT_FIX::ADD('0.4', '0.3'); FLOAT_FIX::ADD('124123.4', '0.3'); FLOAT_FIX::ADD(M_E, M_E); FLOAT_FIX::ADD('2.71828182845904523536028747135266249775724709369995', '2.71828182845904523536028747135266249775724709369995'); FLOAT_FIX::ADD('2132131232101321000.91124214214', '2131232132131231.312'); echo '<hr>'; FLOAT_FIX::COM('0.111', '0.111'); FLOAT_FIX::COM('0.111', '0.112421'); FLOAT_FIX::COM('2134262464233452232.22324214214', '2134262464233452232.22324214214'); FLOAT_FIX::COM('21342624642334522132132131231221412232.2232422132132131231232132112321321314215', '21342624642332132131234522312321321321321332.2212312123212131231233213123324214214'); FLOAT_FIX::COM('21342624642334522132132131231221412232.2232422132132131231232132112321321314215', '21342624642334522132132131231221412232.2232422132132131231232132112321321314215');
You have javascript disabled. You will not be able to edit any code.