Forum Webscript.Ru
Программирование => PHP => Тема начата: Philip от 02 Декабря 2002, 09:47:16
-
Привет, отделяю целое от десятых
$a = 138.6;
$c = (int)$a;
$a = $a - $c;
echo $a;
?>
результат :
0.59999999999999
Почему, должно быть 0.6
Народ помогите, достало.
P.S. Не судите строго, c PHP второй день.
-
используй intval()
-
Не, не помогает
http://www.petrokard.ru/func.php - результат
текст :
Title here!
$a = 138.6;
$a = $a - intval($a);
echo $a;
?>
-
Philip попробуй ещё раз, может у тебя просто "старая" страница закэшировалась, потому что у меня всё нормально работает.
-
Хм...
Интерсено.
На 1.3.24/4.1.3(dev) результат неправильный
А на 2.0.40/4.2.3 все нормально
-
У меня 1.3.26/4.2.3
-
Во фигня.
У меня на 4.2.2 фигня прет 0.5999999999
а на 4.2.3 все нормально 0.6
это как вообще ??
А вообще люди, задача у меня такая, 113.6 это сумма в рублях
надо чтоб выводило 113 рублей 60 копеек, кто знает как это сделать ??
-
Ну ты спросил.
Хоть бы почитал чего:
http://php.spb.ru/php/propis.html
-
b = a * 100
int(b /100) rub , (b%100) kop
-
Не секундочку, мне не нужно писать число прописью.
Тут дело такое, в результате вычислений я получаю различные числа с десятичным окончанием. (113.6, 101.3 и т.д)
Мне нужно в иметь целую и дробную часть в каждой из переменных.
$a = 101
$b = 0.3 и т.д
С целой частью тут все понятно. $a = (int)$a;
а вот с дробной проблемы, не верно считается.
$a = $a - (int)$a;
-
list($rub,$kop)=explode(".",$summa);
-
Спасибо Вам Oak, большое, все зараобтало. супер.
-
А вообще люди, задача у меня такая, 113.6 это сумма в рублях
надо чтоб выводило 113 рублей 60 копеек, кто знает как это сделать ??
И ты этого не можешь сделать сам?! У нас в колледже это на первом курсе, как примеры простейших алгоритмов проходят!
-
С точки зрения математики 5.9(9) = 6 а вот почему это делает пхп это действительно интересно. Никогда с таким глюком не сталкивался.
-
[OFF]Помню, когда я программил на бейсике для Бытового Компьютера "Электроника" :) там 2 в квадрате было 3,99999999899997999 или что-то подобное :)))[/OFF]
-
это происходит при приведении типов.
для инта и для флоата используется разное количество байт.
именно поэтому вариант оака работает - там все время один тип.
-
Metaller
2 в квадрате было 3,99999999899997999 или что-то подобное ))
Наверное, там степени вычислялись по формуле x^n=exp(n*ln(x)))
-
Maniac
Вполне возможно, но тогда меня это очень удивило :)
-
Даа вот что значить нестрогое определение типов в языке + невнимательность.