Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: типы данных
 
 автор: elenaki   (23.09.2004 в 15:27)
 
 

после передачи суммы из формы скрипту, она предстает в таком странном виде.
1.4632E+25

а я всего-то пытаюсь умножить значение на 100. т.е. вместо 1463.2 мне нужно 146320.

нужно как-то преобразовать тип данных? подозреваю, что сумма передается как строка...

   
 
 автор: cheops   (23.09.2004 в 15:34)   письмо автору
 
   для: elenaki   (23.09.2004 в 15:27)
 

А где происходит умножение? Вообще в форме это довольно затруднительно сделать - число 1463.2 посетитель вводит? Неплохо бы саму форму увидить для более точного диагноза :)))

   
 
 автор: elenaki   (23.09.2004 в 15:43)
 
   для: cheops   (23.09.2004 в 15:34)
 

1. сумма вычисляется в скрипте complete_order, показывается пользователю (изменить ее
он не может).
2. потом вместе с остальными данными пересылается методом post в другой
скрипт - send_order, где евро переводятся в центы (банк так хочет), результат записывается
в базу, откуда банк потом по запросу выбирает нужные ему данные. так вот пересылается
покупателю в нормальном виде (1463.20), а в базу падает то, что вверху.

1. <input type="hidden" name="amount"  value="<? echo $syn?>">

2. $amount = (double)$amount*100;

   
 
 автор: elenaki   (23.09.2004 в 15:44)
 
   для: cheops   (23.09.2004 в 15:34)
 

а вот форма. (там еще проверка на заполняемость полей)

<FORM name=myform action=send_order.php method=post onsubmit="return SendForm();">

   
 
 автор: elenaki   (23.09.2004 в 15:49)
 
   для: elenaki   (23.09.2004 в 15:44)
 

кажется, нашла ошибку. не тот тип данных в базе. таблицу дал банк, я не исправляла в ней ничего. а там - все поля varchar(50)!

извините, что отнимаю время... :(

   
 
 автор: elenaki   (23.09.2004 в 15:56)
 
   для: elenaki   (23.09.2004 в 15:44)
 

нет. все равно ту же ерунду делает :(

   
 
 автор: cheops   (23.09.2004 в 16:48)   письмо автору
 
   для: elenaki   (23.09.2004 в 15:56)
 

А если всё на 100 умножается, может его лучше сразу к int привести:
<?php
 $amount 
= (int)$amount*100;
?>

Ведь double преобразуется в строку, с обязательным показателем степени, так как это число с плавающей точкой.

   
 
 автор: elenaki   (23.09.2004 в 17:29)
 
   для: cheops   (23.09.2004 в 16:48)
 

ОК. получилось. уж и не знаю, что помогло. и тип поля изменила и порядок действий (сначала в базу пишу, а потом в банк посылаю) и double убрала... спасибо.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования