Я пытаюсь умножить числа на 2, и эти числа являются целыми числами или дробями. Я вытягиваю эти числа динамически через поля ACF на WordPress как текстовое поле. Но некоторые из этих динамических чисел c не являются дробными, а просто целыми числами, такими как 3 или 1. То, что я пытаюсь сделать, это удвоить число, так что 3/4 будет 1 1/2. Но когда я умножаю дробь на 3/4, она превращается в 1,5. Я использовал код fubars , чтобы эти числа оставались дробными, но затем я столкнулся с проблемой правильных дробей, отображаемых в виде десятичных дробей.
Когда вы нажимаете 6 в размере порции, он должен удвоить рецепт как дроби.
Вот фрагмент кода из моего шаблона, который заботится об этих числах (у меня javascript просто скрывает / показывает число при клике в зависимости от размера порции):
<?php
$number = get_sub_field('number'); // some numbers are 1/2 and 3/4 and some are 1 or 3
$double = 2;
$result = $number * $double;
?>
<?php echo $result; ?>
Будет для них лучше иметь значение в виде десятичных дробей, но каким-то образом использовать jQuery / javascript, чтобы преобразовать его в дроби только для внешнего интерфейса?
Мысли? Я был бы очень признателен!
Дайте мне знать.
Спасибо!
РЕДАКТИРОВАТЬ
Для тех, кто работает с полями ACF через WordPress, вот простое решение для этого. Поле $ number является полем ACF для чисел, поэтому для начала работаем с десятичными числами.
<!-- Create the function -->
function convert($number) {
<!-- pull in the number field and multiply it by 2 (since we are
doubling -->
$number = $number * 2;
<!-- Create and Array of all the possibilities of fractions (this
instance is cooking measurements -->
$fractions = array(
0625 => '1/16',
1875 => '3/16',
3125 => '5/16',
4375 => '7/16',
5625 => '9/16',
6575 => '11/16',
8125 => '13/16',
875 => '14/16',
9375 => '15/16',
125 => '1/8',
33 => '1/3',
25 => '1/4',
66 => '2/3',
5 => '1/2',
375 => '3/8',
625 => '5/8',
75 => '3/4'
);
<!-- explode the part after the decimal point and convert it to the
fraction above -->
$parts = explode('.', $number);
if(isset($parts[1])) {
echo $parts[0].' '.$fractions[$parts[1]];
} else {
echo $number;
}
}
Затем просто добавьте convert () вокруг значения $ number, которое вытягивается в шаблон WP, так что convert ($ номер).