기 타 곱하기 나누기 배치파일 수정 도와주세요
2020.10.07 18:30
환율계산이 필요한데, 주위에 틀리게 하는 사람이 더러 있어서 만들려고 합니다.
오토잇등은 프로그램이 있어야 한다기에 다른 프로그램의 사용없이 할려고 합니다.
배치파일이 소숫점 아래를 버리기 때문에 아래처럼 했습니다.
10달러 처럼 큰 것은 계산이 안되는데, 어디를 수정해야하는지 좀 도와주세요
----------
@ECHO OFF
SET A=118930
SET /P B="USD를 점(.)없이 소숫점 아래 네 자리까지 입력하세요: "
SET /A C=( A * B ) / 1000000
ECHO 2020년 10월 평균환율이 1189.30 원/$ 일 때,
ECHO 환산금액은 %C% 원 입니다.
pause
댓글 [8]
-
메리아 2020.10.07 23:00
-
BecauseI 2020.10.08 02:38 32bit 숫자 범위는 2,147,483,647 이며
계산 과정에서 범위가 넘어가게되면 오류가 나는것 같습니다.
한번에 90283 까지 입력 가능합니다.
cmd 에 익숙하시면 파워쉘도 괜찮을것 같습니다.
$number1=118930
$number2=100000
$total=($number1*$number2)/1000000
$total
11893
대충 이런식으로
-
메리아 2020.10.08 14:36
좀 복잡해지는건 배치파일보다는 VBscript나 파워셸이 낫습니다.
저는 파워셸은 익힌 바가 없어서 주로 VBscript를 씁니다.
XP에서 윈10에 이르기까지 어디서나 그냥 다 실행되죠.
(다만 bat, cmd가 cmd.exe를 쓰듯이 vbs 또한 wscript.exe 또는 cscript.exe를 씁니다. 이런걸 임의로 제거한 경우에는 못씁니다.)
VBscript 코드로 간단히 만들어봤습니다.
Dim exchange_rate
exchange_rate = 1189.30 '$당 원 환율
Dim in_val
'in_val = 1234567.89 ' 테스트 입력값
in_val = -1.00 '초기화 삼아 대충 입력
Dim is_num
is_num = False
Do While Not is_num
in_val = InputBox("USD를 입력하세요")
'MsgBox in_val
is_num = IsNumeric(in_val)
If Not is_num Then Msgbox "올바른 숫자가 아닙니다."
Loop
out_val = exchange_rate * in_val
Msgbox "입력값은 " & FormatNumber(in_val, 2, -1) & " $ 입니다." & vbNewLine & _
"2020년 10월 평균환율이 " & FormatNumber(exchange_rate, 2,,,0) & " 원/$ 일 때," & vbNewLine & _
"환산금액은 " & FormatNumber(out_val, 2, -1) & " 원 입니다."
'VBScript FormatNumber Function 예시
'https://www.w3schools.com/asp/func_formatnumber.asp
-
UU自適 2020.10.09 13:36
감사합니다.
반올림이 적용되는데, 내림으로 하려면 어디를 수정해야 하는지 도와주세요?
-
메리아 2020.10.09 16:44
제가 알기로는 vb계열에서 자릿수 지정해서 내림 올림하는 함수는 없는걸로 압니다.
그래서 아래와 같이 직접적인 연산이 필요합니다.
out_val 밑에 아래를 추가하면 됩니다.
(여러 상황에 대응하는 함수를 정의한 것도 찾아보면 있습니다만, 좀 복잡해지니 아래와 같이 간단하게 계산하는게 낫겠죠.)
'소수 둘째자리 아래로는 반올림 없이 내림
out_val = Int(out_val * 10^2) / 10^2
-
메이데이 2020.10.08 15:45
이런 건가요?
Autoit 이 쉽습니다.
-
UU自適 2020.10.09 13:41
감사합니다.
수숫점을 떼내고 반올림이 아닌 내림을 적용해야 하는데
어떻게 수정을 할 수 있나요?
-
메이데이 2020.10.09 22:04
내림이라면 간단하군요.
결과값을 정수로 바꿔주면 되네요. 뿅~
제 맘대로 만든거라 소스는 허접대기니 딴지는 안받습니다.
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
Global $A = " 1189.30", $B = "10", $C = $A*$B, $result
$Form1 = GUICreate("환율 계산", 150, 240, -1, -1)
$Input1 = GUICtrlCreateInput( $A, 5, 15, 137, 20, $WS_GROUP)
$Button1 = GUICtrlCreateButton("평균 환율 입력", 5, 40, 137, 30, $WS_GROUP)
$Input2 = GUICtrlCreateInput( $B, 5, 85, 137, 20, $WS_GROUP)
$Button2 = GUICtrlCreateButton("USD 입력", 5, 110, 137, 30, $WS_GROUP)
$Lable1 = GUICtrlCreateLabel ( " 환산금액 " & $C & " 원", 5, 160, 137, 20 )
$Button3 = GUICtrlCreateButton("계산", 5, 190, 65, 30, $WS_GROUP)
$Button4 = GUICtrlCreateButton("종료", 75, 190, 65, 30, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
Case $Button2
Case $Button3
$A = GUICtrlRead( $input1 )
$B = GUICtrlRead( $input2 )
$C = $A * $B
$result = int ( $C )
$Lable1 = GUICtrlCreateLabel ( " 환산금액 " & $result & " 원", 5, 160, 137, 20 )
Case $Button4
Exit
EndSwitch
WEnd
번호 | 제목 | 글쓴이 | 조회 | 등록일 |
---|---|---|---|---|
[공지] | 질문과 답변 게시판 이용간 유의사항 | gooddew | - | - |
14510 | 하드웨어| 5버튼 마우스인데, "앞","뒤" 버튼이 ... [3] | brucex | 401 | 09-05 |
14509 | 윈 도 우| PE에서는 보이는 하드가 왜 윈도우 에서는 내용물이 안보일... [4] | 짠쪼 | 401 | 07-21 |
14508 | 하드웨어| 이 컴견적 어때요? [8] | 지구여행중 | 401 | 05-29 |
14507 | 기 타| 어떻게 해야합니까? [2] | 無설탕 | 401 | 05-19 |
14506 | 윈 도 우| sysprep후 윈도우 기본앱 설정 백업과 복원하기... [3] | 포토엔유 | 401 | 06-22 |
14505 | 소프트웨어| 카카오페이, 네이버 페이 결제 방법 설정 | skecjac | 401 | 03-25 |
14504 | 하드웨어| 프린터 덮게를 닫아라고 계속 애러 메세지가 나옵니다 [6] | joe | 401 | 06-15 |
14503 | 윈 도 우| PE 고수님들 확인해주시면 감사하겠습니다.ㅠㅠ [6] | km5623 | 401 | 12-14 |
14502 | 윈 도 우| ga-b360m-ds3h 혹시 메인보드 조립해보신분있나요? [2] | 알파궁상 | 401 | 11-17 |
14501 | 하드웨어| userkey.psw 때문에 포맷이 안 되는 것 같습니다 [1] | slhyou | 401 | 11-10 |
14500 | 하드웨어| 본체 위치 질문입니다 [3] | 냠냠o | 401 | 08-21 |
14499 | 윈 도 우| 무인설치 질문... [1] | 도전정신 | 401 | 07-27 |
14498 | 윈 도 우| PE 에서 iso 이미지 기본 프로그램 [5] | tkrhk | 401 | 07-16 |
14497 | 윈 도 우| 레지스트리 파일(?) 편집 프로그램? [1] | xd | 401 | 04-02 |
14496 | 윈 도 우| 용어의 의미를 알고싶습니다 [3] | never | 401 | 04-04 |
14495 | 윈 도 우| VHD 사용하려면, 시스템예약파티션 필요한가요? [1] | 링크87 | 401 | 07-28 |
14494 | 윈 도 우| 인텔 멜트다운, 스펙터 패치 바이오스 업뎃 후 노트북이 프... | KakaoTube | 401 | 03-05 |
14493 | 윈 도 우| 조건을 따져서 파일을 옮기는 배치파일을 만들고자 합니다 [9] | TetraTheta | 401 | 01-07 |
14492 | 윈 도 우| 설치 버튼이 왜 없는거죠? [6] | windowsandromeda | 401 | 12-16 |
14491 | 윈 도 우| 윈도우 업데이트 실패 [3] | 가드리아 | 401 | 12-13 |
배치파일로 가능한지는 모르겠습니다만
가능하다하더라도 쥐약입니다.
차라리 엑셀 파일 하나 만드세요.
그게 제일 편할겁니다.
엑셀은 엔간하면 다 깔려있잖아요.
엑셀이 안된다면 vbs 파일(vbscript)도 좋습니다.
그것도 윈도우이기만 하면 설치할거 없고,
저런류의 연산은 vb6/vba급으로 할 수 있습니다.