database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 29523 게시물 읽기
No. 29523
소수점 자리수 세기
작성자
theaegis(theaegis)
작성일
2010-01-28 13:11
조회수
9,329

mysql 4.1.0.22// decimal(22,21) 할때 입력데이타가

a : 0.001000000000000000000

b : 0.001002000000000000003

c : 0.000000000000000000300

이런식으로 되었는데

1. 소수점 자리 세는 방법이 있나요?

a 소수점 길이 3자리

b 소수점 길이 21자리

c 소수점 길이 19자리

이런식으로요..

------------------------------------------------------------------

2. 뒤의 0삭제

a : 0.001000000000000000000

이 입력데이타가 있을때 0.001로 표현 시킬수있나요? select 할때요.

이 글에 대한 댓글이 총 6건 있습니다.

1. 원하시는 기능을 가진 함수는 없는거 같네요 SP라도 지원하면 어케 해볼수 있을듯 합니다만.. 네이티브 함수(UDF) 로 만들어서 사용하시던지 아니면 어플단에서...

 

2. 소숫점 3자리로 고정해서 짜른다는건가요? 아니면 1번처럼 소숫점길이에서 뒤에 0을 제거한다는것인지? 전자의 경우는 뭐 format 함수로 하시면 간단하겟네요

select format(컬럼명,3) as 컬럼명 from 테이블명;

 

team b(teamb)님이 2010-01-29 11:54에 작성한 댓글입니다.

몇 번 생각해봤는데, 딱히 좋은 방법은 없는 것 같습니다.

2번도 1번이 해결되어야만 가능한 문제 같네요.

박현우(lqez)님이 2010-01-29 14:40에 작성한 댓글입니다.

2번째는 0을 절삭하고 싶다는 의미입니다..

mysql 함수를 찾아서 읽어봤는데 float에서는 좀 답이 없더군요..

그래서 혹시 제가 지나쳐서 모른 부분이 있나 해서 질문해봅니다....

소수로 구분하는 알고리즘을 짤려고 했는데 select부터 힘들어서 영 못 쓰겠네요 ;;;;

theaegis(theaegis)님이 2010-01-29 16:09에 작성한 댓글입니다.

완전 무식한 방법입니다. -.-....갑자기 생각나서 한번...

select
 case
  when substring(ff,21+2,1) <> '0' then 21
  when substring(ff,20+2,1) <> '0' then 20
  when substring(ff,19+2,1) <> '0' then 19  
  when substring(ff,18+2,1) <> '0' then 18  
  when substring(ff,17+2,1) <> '0' then 17  
  when substring(ff,16+2,1) <> '0' then 16  
  when substring(ff,15+2,1) <> '0' then 15 
  when substring(ff,14+2,1) <> '0' then 14 
  when substring(ff,13+2,1) <> '0' then 13 
  when substring(ff,12+2,1) <> '0' then 12 
  when substring(ff,11+2,1) <> '0' then 11 
  when substring(ff,10+2,1) <> '0' then 10 
  when substring(ff,9+2,1) <> '0' then 9 
  when substring(ff,8+2,1) <> '0' then 8 
  when substring(ff,7+2,1) <> '0' then 7 
  when substring(ff,6+2,1) <> '0' then 6 
  when substring(ff,5+2,1) <> '0' then 5 
  when substring(ff,4+2,1) <> '0' then 4 
  when substring(ff,3+2,1) <> '0' then 3 
  when substring(ff,2+2,1) <> '0' then 2 
  when substring(ff,1+2,1) <> '0' then 1 
  else 0
 end as dec_len
 from atest

뭐 ...그냥 그렇다구욤...>.< 0의 절삭두 뭐 저렇게 하면 ㅋㅋㅋㅋ

 

team b(teamb)님이 2010-01-29 18:31에 작성한 댓글입니다.
이 댓글은 2010-01-29 18:51에 마지막으로 수정되었습니다.

team b님... 저도 로컬 머신에서 똑같은 짓을 했었더랬죠 ㅋㅋㅋ

그럴싸한 방법이 없네요.

박현우(lqez)님이 2010-02-01 14:52에 작성한 댓글입니다.

MYSQL 버젼이 5.대라면 1보다 큰수가 될때까지 10을 곱한 횟수를 구하는 FUNCTION을 만들면 될것 같은데요.

서광호(demian)님이 2010-02-08 12:44에 작성한 댓글입니다.
이 댓글은 2010-02-08 12:46에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
29530해킹으로 my-sql data 파일이 모두 삭제되었습니다.
강선도
2010-02-02
6503
29529XML 파일의 데이타를 MySQL 에서 읽기 [1]
손호준
2010-01-30
8149
29527mysql 트랜잭션 문의드립니다.ㅠ. [1]
정대원
2010-01-29
7735
29523소수점 자리수 세기 [6]
theaegis
2010-01-28
9329
29522등록할 자료에 : 와 ` 가 같이 있으면 오류가 나요 [2]
김길남
2010-01-27
7619
29521[DB 복구 도움을 요청합니다.]
장상민
2010-01-26
8021
29520mysql 쿼리문 관련 질문드립니다. [1]
하태일
2010-01-26
6539
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다