математика — PHP Подразделение Float Value WorkAround

Пожалуйста, обратитесь: PHP Подразделение Float Value Issue

Со ссылкой на Вопрос я написал следующий код. Может ли это быть сделано иначе или меньше кода, чем этот?

Следующее поможет, когда любое из двух заданных значений меньше, чем 1 с десятичными значениями. Это хорошая практика?

<?php

$First_Value = 0.005;
$Second_Value = 0.1;

// Check the First Value for Decimal
$First_Whole = floor($First_Value);  // 0
$First_Fraction = $First_Value - $First_Whole; // .005

// Check the Second Value for Decimal
$Second_Whole = floor($Second_Value); // 0
$Second_Fraction = $Second_Value - $Second_Whole; // .1

// Multiply with 100 becaus ethe decimal is restricted to 3 digit so multiply with 100 works
if(($First_Whole == 0) || ($Second_Whole == 0)){
$First_Value = $First_Value*100; // 0.5
$Second_Value = $Second_Value*100; // 10
}

echo $tableCount = $Second_Value / $First_Value; // 20
?>

0

Решение

Вам не нужно делать какие-либо из этих расчетов. просто делай последнее деление.

...
$value1 = .005;
$value2 = .1;

echo $value1 / $value2;

результаты в 20

Если вы пытаетесь получить только 2 десятичных знака, вы можете использовать числовой формат после деления. Если вы пытаетесь отформатировать перед делением, то вы все равно должны иметь возможность форматировать числа. Однако, если вы не можете, то почему бы просто не умножить оба числа на 1000 (три знака после запятой)% на 1 и минус отличие мода от фактического. что даст вам 3 в этом случае, делим обратно на 1000

[РЕДАКТИРОВАТЬ]

чтобы получить остаток, сделайте следующий пример

...
$v = .0055;
$d = .1;

$a = $d/$v;
$s = $a % ceil($a);
$r = $a - $s;

ответ = .18181818181818181 …

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector