데이터베이스 입력할때 소수점 입력이 안되요
본문
PDO 랑 mysqli 둘다 해봤는데 1.4를 입력하면 그냥 반올림되서 1이 되버리네요 그이하 소수점 자리도 그렇구요
데이터베이스 칼럼 타입은 int, demical, float 다 해봤는데도 그냥 자동 반올림 되버립니다.
POST로 값 전송은 확실하게 제대로 되는데 왜 데이터베이스에 입력할때는 혼자 마음대로 반올림이 되어버릴까요??
ajax로
data {
'a-price': parseFloat(modal.find('#a-price').val()),
}
이렇게 POST로 값을 전송하고
$_POST['a-price'] 값을 데이터베이스에 입력합니다.
왜이럴까요
답변 2
mysql 의 소수점 처리시 decimal 타입을 추천합니다.
소수점 한자리 decimal(5,1), decimal(6,1), ...
mysql 에서 데이터 타입이 소수점 처리가 가능할 때 자동으로 반올림 처리되는 것과 관련된
얘기는 아직 듣지 못했습니다.
ajax 처리 페이지로 넘어간 값과, mysql 의 sql 문을 단계적으로 디버깅 한뒤,
저장 칼럼의 data type 을 점검해보는 순서로 살펴보는 것이 좋을 것 같습니다.
ajax 처리 페이지에서 넘어오는 값과,
sql 문을 echo 로 확인할 수 있습니다. (크롬 브라우저 개발자 도구 (F12) > 네트워크 탭 > ajax 처리 파일)
ex. echo $a-price; echo $sql;
실제 수행되는 sql 문을 db 툴(phpmyadmin, HeidiSQL, adminer 등) 에서 쿼리 실행하여, 값이 정삭적으로 입력되는지
살펴보는 것이 좋을 듯 합니다.
double로 해보세요