일부 항목의 가격을 mysql 테이블에 넣어야합니다. 테이블을 만들 때 쉼표 뒤에 두 자리 이상 필요하지 않으므로 DECIMAL(10,2)
을 사용하고 있습니다 (예 : 123,45는 입력으로 허용되지만 123,456은 PHP로 123,45로 반올림 됨).mysqli의 십진수 처리
첫 번째 질문 : DECIMAL(10,2)
을 사용하면 쉼표 앞에 몇 개의 숫자가 저장 될 수 있는지 어떻게 알 수 있습니까? 나는 그것이 10이 아니라는 것을 안다. 10은 Mysql이 그 숫자로 수학을 할 때 사용하는 정밀도이다 : 그래서 숫자 자체의 길이가 어디에 지정되어 있는가?
둘째 질문 : 데이터 입력에 맞게 사용자 입력을 반올림하기 위해 PHP를 사용하고 있습니다 (쉼표 뒤에 두 자리 숫자로 플로트 함). 해당 데이터를 삽입하려면 mysqli->bind_param
을 어떻게 사용해야합니까? 다음 중 bind_param
에 의해 허용되는 이러한 데이터 유형 (documentation) 중 어느 것을 사용해야합니까 (가능한 이유는 무엇입니까?)?
Character Description
i corresponding variable has type integer
d corresponding variable has type double
s corresponding variable has type string
b corresponding variable is a blob and will be sent in packets
감사합니다! 그래서 10-2입니다. 지금은 이해합니다. – Saturnix
스케일링 된 정확한 수치가 필요하면'double' 또는'float'을 사용하지 않는 것이 좋습니다. http://dev.mysql.com/doc/refman/5.6/en/problems-with-float.html –
을보십시오.이 질문 및 답변에서 mysql은'decimal'을 사용합니다. double로 설정된 바인드 매개 변수 만 해당합니다. 그리고 주어진 유형에서만 옵션을 제공합니다. –