웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
정확한 계산기 소스입니다.
2014.01.15 19:54
<HTML>
<HEAD>
<TITLE> </TITLE>
<style type="text/css">
<!--
body {font-family: helvetica}
p {font-size: 12pt}
.red {color: red}
.blue {color: blue}
-->
</style>
<SCRIPT LANGUAGE="JavaScript">
<!--
var Memory = 0;
var Number1 = "";
var Number2 = "";
var NewNumber = "blank";
var opvalue = "";
function Display(displaynumber) {
document.calculator.answer.value = displaynumber;
}
function MemoryClear() {
Memory = 0;
document.calculator.mem.value = "";
}
function MemoryRecall(answer) {
if(NewNumber != "blank") {
Number2 += answer;
} else {
Number1 = answer;
}
NewNumber = "blank";
Display(answer);
}
function MemorySubtract(answer) {
Memory = Memory - eval(answer);
}
function MemoryAdd(answer) {
Memory = Memory + eval(answer);
document.calculator.mem.value = " M ";
NewNumber = "blank";
}
function ClearCalc() {
Number1 = "";
Number2 = "";
NewNumber = "blank";
Display("");
}
function Backspace(answer) {
answerlength = answer.length;
answer = answer.substring(0, answerlength - 1);
if (Number2 != "") {
Number2 = answer.toString();
Display(Number2);
} else {
Number1 = answer.toString();
Display(Number1);
}
}
function CECalc() {
Number2 = "";
NewNumber = "yes";
Display("");
}
function CheckNumber(answer) {
if(answer == "."){
Number = document.calculator.answer.value;
if(Number.indexOf(".") != -1) {
answer = "";
}
}
if(NewNumber == "yes") {
Number2 += answer;
Display(Number2);
}
else {
if(NewNumber == "blank") {
Number1 = answer;
Number2 = "";
NewNumber ="no";
}
else {
Number1 += answer;
}
Display(Number1);
}
}
function AddButton(x) {
if(x == 1) EqualButton();
if(Number2 != "") {
Number1 = parseFloat(Number1) + parseFloat(Number2);
}
NewNumber = "yes";
opvalue = '+';
Display(Number1);
}
function SubButton(x) {
if(x == 1) EqualButton();
if(Number2 != "") {
Number1 = parseFloat(Number1) - parseFloat(Number2);
}
NewNumber = "yes";
opvalue = '-';
Display(Number1);
}
function MultButton(x) {
if(x == 1) EqualButton();
if(Number2 != "") {
Number1 = parseFloat(Number1) * parseFloat(Number2);
}
NewNumber = "yes";
opvalue = '*';
Display(Number1);
}
function DivButton(x) {
if(x == 1) EqualButton();
if(Number2 != "") {
Number1 = parseFloat(Number1) / parseFloat(Number2);
}
NewNumber = "yes";
opvalue = '/';
Display(Number1);
}
function SqrtButton() {
Number1 = Math.sqrt(Number1);
NewNumber = "blank";
Display(Number1);
}
function PercentButton() {
if(NewNumber != "blank") {
Number2 *= .01;
NewNumber = "blank";
Display(Number2);
}
}
function RecipButton() {
Number1 = 1/Number1;
NewNumber = "blank";
Display(Number1);
}
function NegateButton() {
Number1 = parseFloat(-Number1);
NewNumber = "no";
Display(Number1);
}
function EqualButton() {
if(opvalue == "+") AddButton(0);
if(opvalue == "-") SubButton(0);
if(opvalue == "*") MultButton(0);
if(opvalue == "/") DivButton(0);
Number2 = "";
opvalue = "";
}
// -->
</script>
</HEAD>
<BODY>
<center>
<form name="calculator">
<table bgcolor="#aaaaaa" width=220>
<tr><td>
<table bgcolor="#cccccc" border=1>
<tr><td>
<table border=0 cellpadding=0>
<tr><td bgcolor="#000080" align=center><b style="color:white">계산기</b></td></tr>
<tr><td>
<table width="100%" border=0>
<tr><td colspan=6><input type="text" name="answer" size=33 maxlength=30 onChange="CheckNumber(this.value)"></td></tr>
<tr><td colspan=6>
<table border=0 cellpadding=0>
<tr><td align=right>
<input type="text" name="mem" size=3 maxlength=3>
<input type="button" name="backspace" class="red" value=" ← " onClick="Backspace(document.calculator.answer.value); return false;">
<input type="button" name="CE" class="red" value=" CE " onClick="CECalc(); return false;">
<input type="reset" name="C" class="red" value=" C " onClick="ClearCalc(); return false;">
</td></tr>
</table>
</td></tr>
<tr><td><input type="button" name="MC" class="red" value=" MC " onClick="MemoryClear(); return false;"></td>
<td><input type="button" name="calc7" class="blue" value=" 7 " onClick="CheckNumber('7'); return false;"></td>
<td><input type="button" name="calc8" class="blue" value=" 8 " onClick="CheckNumber('8'); return false;"></td>
<td><input type="button" name="calc9" class="blue" value=" 9 " onClick="CheckNumber('9'); return false;"></td>
<td><input type="button" name="divide" class="red" value=" / " onClick="DivButton(1); return false;"></td>
<td><input type="button" name="sqrt" class="blue" value="sqrt " onClick="SqrtButton(); return false;"></td> </tr>
<tr><td><input type="button" name="MR" class="red" value=" MR " onClick="MemoryRecall(Memory); return false;"></td>
<td><input type="button" name="calc4" class="blue" value=" 4 " onClick="CheckNumber('4'); return false;"></td>
<td><input type="button" name="calc5" class="blue" value=" 5 " onClick="CheckNumber('5'); return false;"></td>
<td><input type="button" name="calc6" class="blue" value=" 6 " onClick="CheckNumber('6'); return false;"></td>
<td><input type="button" name="multiply" class="red" value=" * " onClick="MultButton(1); return false;"></td>
<td><input type="button" name="percent" class="blue" value=" % " onClick="PercentButton(); return false;"></td> </tr>
<tr><td><input type="button" name="MS" class="red" value=" MS " onClick="MemorySubtract(document.calculator.answer.value); return false;"></td>
<td><input type="button" name="calc1" class="blue" value=" 1 " onClick="CheckNumber('1'); return false;"></td>
<td><input type="button" name="calc2" class="blue" value=" 2 " onClick="CheckNumber('2'); return false;"></td>
<td><input type="button" name="calc3" class="blue" value=" 3 " onClick="CheckNumber('3'); return false;"></td>
<td><input type="button" name="minus" class="red" value=" - " onClick="SubButton(1); return false;"></td>
<td><input type="button" name="recip" class="blue" value=" 1/x " onClick="RecipButton(); return false;"></td> </tr>
<tr><td><input type="button" name="MPlus" class="red" value=" M+ " onClick="MemoryAdd(document.calculator.answer.value); return false;"></td>
<td><input type="button" name="calc0" class="blue" value=" 0 " onClick="CheckNumber('0'); return false;"></td>
<td><input type="button" name="negate" class="blue" value=" +/- " onClick="NegateButton(); return false;"></td>
<td><input type="button" name="dot" class="blue" value=" . " onClick="CheckNumber('.'); return false;"></td>
<td><input type="button" name="plus" class="red" value=" + " onClick="AddButton(1); return false;"></td>
<td><input type="button" name="equal" class="red" value=" = " onClick="EqualButton(); return false;"></td> </tr>
</tr>
</table>
</td></tr>
</table>
</td></tr>
</table>
</td></tr>
</table>
</form>
</center>
</BODY>
</HTML>
모형
댓글 2
-
류중근
2016.03.20 15:17
-
Frenda
2016.05.07 20:25
지나가다가 답변남깁니다.
MC / MR / MS 의 의미는 다음과 같습니다.
MC - 메모리 클리어 (메모리된값 지움)
MR - 메모리 리드 (메모리된값 읽음)
MS - 메모리 세이브 (현재 계산결과 혹은 값을 메모리에 저장)
MS는 M-와는 의미가 다릅니다.
더불어 기존 사용하는 PC에도 마이크로 소프트에서 만들어낸 훌륭한 계산기가 있습니다...
윈도우키 + R을 누르신뒤 (실행의 단축키 입니다.) CALC 를 입력후 엔터 누르시면
윈도우를 사용하는 그 어떤 PC에서라도 계산기가 튀어나옵니다. (XP,7,8,8.1,10 은 물론 윈도우 98, 95에도 있습니다.)
제목 | 글쓴이 | 날짜 |
---|---|---|
xe 사이트에 응용프로그램으로 오토포스팅은 안됩니다. | 최윤한 | 2016.08.17 |
아이콘 폰트 축소 서비스 | easylogic | 2016.08.11 |
XE Core:1.7.5.3 조회수 증가, 자기 게시글 클릭시 조회수 증가 [1] | 때린데 또때려 | 2014.07.04 |
상위 셀렉트박스 값 변경시 하위셀렉트박스(다수)제어하기. [2] | Xian | 2005.02.19 |
포트포워딩없이 외부접속 허용하기(윈도우 서버) [1] | 임채원임 | 2014.11.17 |
CentOs7에서 중국 IP 차단하기 [5] | 카르마 | 2016.06.02 |
메인메뉴 빵조각메뉴 서로 다르게 하고 싶을때 | 미연조 | 2016.07.08 |
하나의 웹서버에 php5, php7 설치하기 | 라온넷닷컴 | 2016.06.10 |
배너 랜덤추출 스크립트 [xe적용방법] [16] | 라싸 | 2008.02.19 |
비싼호스팅 쓰지말고 공유기로 돌리자(컴보다 더 쉽다니!!) [1] | djdisodo | 2016.06.04 |
CentOS 7 : Apache2.4 + PHP5.6 + MariaDB + VSFTP 설치하기 [6] | 우리아기 | 2015.08.06 |
[추천 팁] 오에카키 PHP 버전으로 만들기 [19] | 소프트맨 | 2002.08.31 |
사용자정의 기준으로 정렬을 했을 경우 최신글이 목록 상단으로 뜨도록 수정법 ( 현재 최신글이 하단에 뜸 ) | sejin7940 | 2016.05.25 |
부운영자 [26] | 송동우 | 2012.02.05 |
정확한 계산기 소스입니다. [2] | 현탁 | 2014.01.15 |
[시니시즘] XE의 XML Query 관련 팁 | 시니시즘 | 2016.04.26 |
[개발팁] Console에서 디버깅 시 발생하는 x.js Deprecated 오류 제거 하기 | SimpleCode | 2016.04.19 |
IIS에서의 URL 재작성 사용하기 [5] | ehii | 2014.10.30 |
SEO 1.8.18 에서 Analytics 와 기타 탭 작동 안 하는 버그 수정법 | sejin7940 | 2016.04.03 |
그룹별 회원 목록 출력 [2] | 윤삼 | 2015.10.25 |
제가 수도 없이 많은 날을 학교라는 대단한 시설을 오갔는데도 어찌 된 영문인지 글쎄 아직 아주 간단한 계산기 하나도 못 다룬답니다.
참으로 개탄할 노릇이지요. 그런 이유에서도 그렇겠지만, 컴퓨터에서도 가끔 일상에 필요한 계산기를 굴려야 할 필요가 있어 기회가 닿으면 인터넷에서 계산기 소스를 구해와서 제 컴퓨터에 달아두곤 했거든요.
오늘은 그렇게 얻은 계산기 중 하나를 꺼내놓고서 그 속을 들여다보는데 도무지 계산기 전면에 나온 영문의 버튼들이 무슨 뜻인지 알 수가 없는 겁니다.
설혹 안다고 해도 그 계산 식이나 버튼 입력 방식을 몰라 거기 나온 결과가 정답인지 확신할 수도 없는 판국인데 최소한 거기 나온 버튼 몇 개 정도는 확인할 필요가 있었습니다.
가령 이 글에 첨부한 그림에도 나올 'MC', 'MR, 'MS', 'M-', 'M+' 등등의 버튼을 말이어요.
그래서 마땅히 찾을 곳도 없고 하여 네이버에서 검색해서 확인했는데 그 대충을 겨우 이해했지요.
그런데 문제는 여기 소스대로 만든 계산기 안의 'MS' 버튼이 네이버에서 확인한 사정과는 약간 다른 결과를 내보냈거든요.
아무리 봐도 그건 '메모리 Minus'에 의미를 지닌 'M-'로 고치는 것이 바를 것 같기에 그렇게 바꿔봅니다.
이렇게도 고마운 소스를 얻었기에 사실 무척 기뻤습니다.
그 고마움이 이런 약간의 차이 탓에 줄어든 건 아니지만, 그보다 먼저 'MS' 버튼에 다른 뜻이 들었을 수도 있는데 제가 혹시 아무것도 모른 체 이렇게 무작정 설레발 떠는 건 아닌지 불안합니다.
그 진위도 확인되길 바라는 맘과 다시금 고맙다는 말씀 덧붙이면서 맺겠습니다.
그럼 오늘도 건강하게 지내는 하루 되십시오!