상품가격 반올림 질문드려요. 채택완료
update g5_shop_item set it_price= truncate(it_price * 0.97, 0)
이렇게 해서 상품가격을 3% 낮췄습니다.
그런데 1원 단위까지 표시가 되네요.
1)
19,206원 이렇게요 금액을 100원 단위로 19,300원 이렇게 반올림 하고 싶습니다.
------------------------------------------------------------------
이렇게 질문을 드렸었는데요.
답변이...
http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_html&wr_id=10600" target="_blank">http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_html&wr_id=10600" target="_blank">http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_html&wr_id=10600
이렇게 답변이 달아 주셨습니다.
그렇데 위 링크를 가셔 적용하려고 해도 적용 방법을 모르겠어요 ㅠㅠ
[링크내용]
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에 관한 질문인것같네요
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인