기 타 곱하기 나누기 배치파일 수정 도와주세요
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 | - | - |
6354 | 기 타| 사용자 계정 변경 배치파일 부탁드려봅니다. [8] | 빗소리 | 361 | 10-19 |
6353 | 기 타| 이파일 어떤 툴로 언팩을 시켜야하나요? | 슈머슈마 | 387 | 10-18 |
6352 | 기 타| KJ님 비공개자료 [2] | 기수 | 1127 | 10-18 |
6351 | 기 타| 사진글씨 선명하게 하는방법 [3] | 홍낄똥 | 2077 | 10-18 |
6350 | 기 타| 삼성 850 ssd 원도우가 안되네요. [9] | 深泉[三神 | 643 | 10-18 |
6349 | 기 타| 원도우부팅키 [2] | 산골나그네 | 416 | 10-17 |
6348 | 기 타| 회사노트북에 WTG 너무 느려요.. [8] | 렛고 | 565 | 10-17 |
6347 | 기 타| 어린이 색칠용 도안 만들어 주는 곳 알려주세요 [4] | 창공을훨훨 | 780 | 10-16 |
6346 | 기 타| 자료실에 있는, StartIsBack 2.96 버젼이 상하네요... [2] | 기억의저편 | 390 | 10-15 |
6345 | 기 타| PC 화면 깨짐 [4] | 매일이새롭 | 310 | 10-15 |
6344 | 기 타| 파워 돼지코 코드를 [2] | aqz | 533 | 10-14 |
6343 | 기 타| 인터넷 대칭 . 비대칭 그리고 클라우드 VPN [2] | 곰댕이 | 300 | 10-12 |
6342 | 기 타| 전기 잘아시는분? [13] | 소녀시대 | 846 | 10-12 |
6341 | 기 타| 윈도우에서 다중부팅을 쉽게하는 방법문의드립니다 [3] | 개척자 | 374 | 10-11 |
6340 | 기 타| 외장하드의 포멧 방식 문의 [2] | 삐쟁이 | 365 | 10-09 |
6339 | 기 타| 안드로이드 광고용플레이어 32:9 화면출력 문의 | 똘이 | 114 | 10-09 |
6338 | 기 타| 4TB 외장하드 부팅 가능하게 만들 수 없나요? [1] | 아구다 | 510 | 10-09 |
6337 | 기 타| 고무 양면 테이프 [5] | hanco | 659 | 10-09 |
» | 기 타| 곱하기 나누기 배치파일 수정 도와주세요 [8] | UU自適 | 397 | 10-07 |
6335 | 기 타| 모니터 문의요 [3] | 홍낄똥 | 271 | 10-07 |
배치파일로 가능한지는 모르겠습니다만
가능하다하더라도 쥐약입니다.
차라리 엑셀 파일 하나 만드세요.
그게 제일 편할겁니다.
엑셀은 엔간하면 다 깔려있잖아요.
엑셀이 안된다면 vbs 파일(vbscript)도 좋습니다.
그것도 윈도우이기만 하면 설치할거 없고,
저런류의 연산은 vb6/vba급으로 할 수 있습니다.