2012-02-09 3 views
0

다음 I는 현재 구조 테이블을 가지고 현재이 채워MySQL은 : I는 INT 열에 입력 십진수 필요

enter image description here

을 다음과 같이

enter image description here

제품 값에 대해 저장된 데이터는 십진수 값 이고 끝자리는 데이터베이스에 삽입 된 후 잘립니다.

enter image description here

그러나이 단지 리드를 다음과 : 다음과 같이

나는 테이블 구조를 변경 시도

enter image description here

모든 값이 .00가 추가가 볼 수 있듯이 존재하지 않는 경우, 그러나 나는 소수점 이하 자리수로 모든 값을 저장하기를 원합니다. . 제품 가치를 제외하고.

어떻게하면됩니까?

+6

혼란스러운 저장 및 포맷 문제, 올바른 값 저장 및 원하는 형식으로 표시 (표시). –

+0

시도해보십시오 outputValue (18,0)? –

+0

그러나 데이터베이스에서 값을 선택하고'.00'없이 화면에 출력하고 싶다면 매번 round() 함수를 적용 할 필요가 없습니까? – NeverPhased

답변

0

문제는 정수로 소수 (float/double)를 변환하기 때문에 값이 잘 리기 때문입니다 (10 진수 값은 잘립니다). 당신이 정말로 당신이 해킹 작업을 사용하여 데이터베이스에 수레 (소수 값)를 사용하지 않으려면

주위 작동합니다

곱하기를 분할해야 다음을 삽입하고, 이전에 100 수 데이터를 사용할 때 100 씩 증가합니다. 이렇게하면 정수 저장을 사용하는 동안 소수점 2 자리를 유지할 수 있습니다.

따라서, 2.4 (240)로 저장된다 (53)이 5300이 될 것이며, 20.74은 2,074 등 ...

I이 이상적인 솔루션되는 것은 아니다하려는 것이 아니라 해킹된다.

다른 사용자가 주석에서 제안한 내용 (10 진수 값 저장)과 제시 할 때 서식을 지정하는 것이 좋습니다. 또한

--- ---

당신의 진짜 문제는 데이터베이스가 설치되는 방법을 것으로 보인다.

각 값은 각 제품에 대해 반복되므로 각 값은 고유 한 필드를 가져야합니다.