상품가격 반올림 질문드려요.

상품가격 반올림 질문드려요.

QA

상품가격 반올림 질문드려요.

본문

update g5_shop_item set it_price= truncate(it_price * 0.97, 0)

 

이렇게 해서 상품가격을 3% 낮췄습니다.

 

그런데 1원 단위까지 표시가 되네요.

 

1)

19,206원 이렇게요 금액을 100원 단위로 19,300원 이렇게 반올림 하고 싶습니다.

 

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

 

이렇게 질문을 드렸었는데요.

 

답변이...

이렇게 답변이 달아 주셨습니다.

 

그렇데 위 링크를 가셔 적용하려고 해도 적용 방법을 모르겠어요 ㅠㅠ

 

[링크내용]

 

1번째 방법

<html>
<head>
<script>
function rou(form) {
val =parseInt(form.price.value);
val=Math.round(val/100)*100;
alert(val);
}
</script>
<head>
<body>
<form>
<input type=text name=price>
<input type=button value=반올림 onclick="rou(this.form)">
</form>
<?
## php 스크립트 반올림
$res =round(6430/100)*100;
echo $res;
?>
</body>
</html>

 

2번째 방법

php에서는 round함수 자체에 자릿수 설정기능이 있죠.

round(123.456) -> 123
round(123.456, 1) -> 123.5
round(123.456, 2) -> 123.46
round(123.456, -1) -> 120
round(123.456, -2) -> 100

이런 식이죠..
하지만 자바스크립트에는 Math.round 함수가 있지만 아마 자릿수 설정은 안 될겁니다. 약간 변형해서 php의 round함수처럼 쓴다면 이렇게 하면 되지 않을까 생각해요.
아래에서 num은 반올림시킬 숫자이고 round_num은 반올림할 자릿수입니다.

function my_round(num, round_num){
// 반올림할 위치와 소숫점을 맞추기 위해 숫자를 알맞게 가공
tmp_num1=num*Math.pow(10, round_num);

// 가공된 숫자를 반올림
tmp_num2=Math.round(tmp_num1);

// 역순으로 다시 가공
result=tmp_num2/Math.pow(10, round_num);

return result;
}

이 함수를 사용할 때는 php와 비슷하게
my_round(123.456, 2); -> 123.46 이 나오겠죠?
my_round(6980, -2); -> 7000 이 나오겠죠?
이런 식으로 쓰면 되겠네요.

참고로 Math.round() 는 반올림 함수, Math.pow() 는 제곱함수입니다.

 

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

 

이해가 가지 않네요.

 

고수님들의 자세한 적용방법 부탁드립니다.

이 질문에 댓글 쓰기 :

답변 2

음... 질문자님 의도에 맞추어 답변을 드리면 

update g5_shop_item set it_price= Ceil(it_price * 0.97 / 100)*100

 

이렇게 하시면 됩니다. 결국 다른 답변자들이 하신 답변이랑 원리는 같은데 mysql에서 할수도 있고 자바스크립트에서도 할수도 있고 php에서 할수도 있지만, mysql에 관한 질문인것같네요

위 소스에도 php형태로 있네요. 자스에서도 아이디어는 똑같죠.

 

예를 들어 가격이 19206 인데 반올림해 19300 이 되려면

 

var a = 19206;

var b = Math.ceil(a/100) * 100; //가격을 100으로 나눠 올리고, 그값에 다시 100을 곱하면 됩니다.

 

alert(b); //결과: 19300

답변을 작성하시기 전에 로그인 해주세요.
전체 0
QA 내용 검색
  • 개별 목록 구성 제목 답변작성자조회작성일
  • 질문이 없습니다.

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT