Skip to content

Commit 48d16ac

Browse files
refactor(steps): Improve clarity and conciseness of conversion steps
1 parent 36023bc commit 48d16ac

File tree

3 files changed

+13
-21
lines changed

3 files changed

+13
-21
lines changed

pages/index.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -149,22 +149,22 @@ export default function ConverterPage() {
149149
const convertFractionalToBase = (fractional, toBase, precision) => {
150150
let steps = [];
151151
if (fractional === 0) return { result: '', steps };
152-
steps.push({ key: 'step.convertFracFromDec', values: { fractional: fractional, toBase: toBase } });
153152
const validChars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
154153
let result = '';
155154
let count = 0;
156155
let frac = fractional;
157156
let stepDetails = '';
158157
while (frac > 0 && count < precision) {
158+
const originalFrac = frac;
159159
frac *= toBase;
160160
const digit = Math.floor(frac);
161-
stepDetails += `${frac.toFixed(6)}${t('step.integerPart')}: ${digit} (${validChars[digit]})
161+
stepDetails += `${originalFrac.toFixed(6)} * ${toBase} = ${frac.toFixed(6)}${t('step.integerPart')}: ${digit} (${validChars[digit]})
162162
`;
163163
result += validChars[digit];
164164
frac -= digit;
165165
count++;
166166
}
167-
steps.push({ key: 'step.fracToBaseDetails', values: { details: stepDetails, result: result } });
167+
steps.push({ key: 'step.fracToBaseDetails', values: { fractional: fractional, toBase: toBase, details: stepDetails, result: result } });
168168
return { result, steps };
169169
};
170170

public/locales/en.json

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,17 +27,13 @@
2727
"error.invalidChars": "The number \"{number}\" contains invalid characters for base {base}",
2828
"error.conversion": "Error during conversion: {message}",
2929
"step.split": "Splitting number {number} into integer and fractional parts",
30-
"step.parts": "Integer part: {integer}, Fractional part: {fractional}",
31-
"step.convertIntToDec": "Converting integer part {integer} from base {fromBase} to decimal:",
32-
"step.convertFracToDec": "Converting fractional part {fractional} from base {fromBase} to decimal:",
30+
"step.parts": "Integer part: {integer}, fractional: {fractional}",
3331
"step.decResult": "Decimal representation: {intResult} + {fracResult} = {total}",
34-
"step.convertIntFromDec": "Converting integer part {integer} to base {toBase}:",
35-
"step.convertFracFromDec": "Converting fractional part {fractional} to base {toBase}:",
3632
"step.zeroIsZero": "Number 0 remains 0 in any base system",
37-
"step.intConversionDetails": "{details}Sum: {sum}",
38-
"step.fracConversionDetails": "{details}Sum: {sum}",
39-
"step.intToBaseDetails": "{details}Result: {result} (read remainders from bottom to top)",
40-
"step.fracToBaseDetails": "{details}Result: {result}",
33+
"step.intConversionDetails": "Converting integer part {integer} from base {fromBase} to decimal:\n{details}Sum: {sum}",
34+
"step.fracConversionDetails": "Converting fractional part {fractional} from base {fromBase} to decimal:\n{details}Sum: {sum}",
35+
"step.intToBaseDetails": "Converting integer part {integer} to base {toBase}:\n{details}Result: {result} (read remainders from bottom to top)",
36+
"step.fracToBaseDetails": "Converting fractional part {fractional} to base {toBase}:\n{details}Result: {result}"
4137
"step.finalResult": "Result: {result}",
4238
"step.remainder": "remainder",
4339
"step.integerPart": "integer part"

public/locales/uk.json

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,17 +28,13 @@
2828
"error.conversion": "Помилка при конвертації: {message}",
2929
"step.input": "Вхідні дані: число {number} з системи {fromBase} у систему {toBase}",
3030
"step.split": "Розділяємо число {number} на цілу та дробову частини",
31-
"step.parts": "Ціла частина: {integer}, Дробова частина: {fractional}",
32-
"step.convertIntToDec": "Конвертація цілої частини {integer} з основою {fromBase} у десяткову:",
33-
"step.convertFracToDec": "Конвертація дробової частини {fractional} з основою {fromBase} у десяткову:",
31+
"step.parts": "Ціла частина: {integer}, дробова: {fractional}",
3432
"step.decResult": "Десяткове представлення: {intResult} + {fracResult} = {total}",
35-
"step.convertIntFromDec": "Конвертація цілої частини {integer} у основу {toBase}:",
36-
"step.convertFracFromDec": "Конвертація дробової частини {fractional} з основою {toBase}:",
3733
"step.zeroIsZero": "Число 0 залишається 0 в будь-якій системі",
38-
"step.intConversionDetails": "{details}Сума: {sum}",
39-
"step.fracConversionDetails": "{details}Сума: {sum}",
40-
"step.intToBaseDetails": "{details}Результат: {result} (читаємо залишки знизу вгору)",
41-
"step.fracToBaseDetails": "{details}Результат: {result}",
34+
"step.intConversionDetails": "Конвертація цілої частини {integer} з основою {fromBase} у десяткову:\n{details}Сума: {sum}",
35+
"step.fracConversionDetails": "Конвертація дробової частини {fractional} з основою {fromBase} у десяткову:\n{details}Сума: {sum}",
36+
"step.intToBaseDetails": "Конвертація цілої частини {integer} у основу {toBase}:\n{details}Результат: {result} (читаємо залишки знизу вгору)",
37+
"step.fracToBaseDetails": "Конвертація дробової частини {fractional} з основою {toBase}:\n{details}Результат: {result}",
4238
"step.finalResult": "Результат: {result}",
4339
"step.remainder": "остача",
4440
"step.integerPart": "ціла частина"

0 commit comments

Comments
 (0)