Я переписываю программу BASIC на PHP. Я перебежать проблемы, позвольте мне объяснить:Несоответствие между BASIC INT и PHP int, как решить?
В ОСНОВНОЙ коде я имею следующее заявление со значениями:
LSLATVER=1590
PITCHVER=50
NRSLATHOR=INT(LSLATVER/PITCHVER-.8)
// output: 30
В PHP код у меня есть два примера, как это:
$length_vertical_slat = 1590;
$vertical_pitch = 50;
echo $number_of_horizontal_slats = (int) ($length_vertical_slat/$vertical_pitch - .8);
// output: 31
echo $number_of_horizontal_slats = (int) ($length_vertical_slat/($vertical_pitch - .8));
// output: 32
Почему существует такая огромная разница между тремя примерами? Мне нужен PHP для вывода значения 30 в этом примере, но я не вижу, как это сделать. Пожалуйста, помогите!
Вы пробовали с http://www.php.net/intval? – Matteo
Читайте по математике с плавающей запятой. Для математики с плавающей запятой php используйте 'bcmath': http://php.net/manual/en/book.bc.php – Nanne
Первое, что нужно заметить, - это ваша основная математика вне '$ var/$ var - $ float' is не то же самое, что '$ var/($ var - $ float)' скобки оцениваются с первой математикой 101. Вторая вещь, которую следует заметить, заключается в том, что ваш жесткий листинг это как INT так php делает предмет логики и округляет от 30,5 до 31 31. Ваше первое утверждение верно, но удалите жесткий листок – Dave