в Qbasi c, как я могу сделать, чтобы мой номер сантиметра отображался с точностью до одного знака после запятой. 73,53 вместо 73,53315 - PullRequest
1 голос
/ 08 февраля 2020
CLS
REM Declare Varibles
DIM MILES, YARDS, FEET, INCHES AS DOUBLE
DIM KM, METER, TINCH AS DOUBLE
DIM CM, TMETER AS DOUBLE
REM INPUT THE DATA
INPUT "ENTER THE DISTANCE IN MILES", MILES
INPUT "ENTER THE DISTANCE IN YARDS", YARDS
INPUT "ENTER THE DISTANCE IN FEET", FEET
INPUT "ENTER THE DISTANCE IN INCHES", INCHES
REM CONVERT INTO TOTAL INCHES
TINCH = 63360 * MILES + 36 * YARDS + 12 * FEET + INCHES
REM CONVERT INTO TOTAL METER
TMETER = TINCH / 39.37
REM CONVERT TO KILOMETER
KM = INT(TMETER / 1000)
REM CONVERT TO METER
METER = INT(TMETER - KM * 1000)
REM CONVERT TO CENTIMETER
CM = (TMETER - (KM * 1000) - METER) * 100
REM PRINT DETAILS
PRINT "KILOMETER", KM
PRINT "METER", METER
PRINT "CENTIMETER", CM; 

1 Ответ

1 голос
/ 09 февраля 2020

Classi c QBasi c не имеет функции округления, поэтому вам нужно принести свою собственную.

FUNCTION round# (num AS DOUBLE, dp AS INTEGER)
    'WARNING: USE "#" at the end of constant values,
    'or else you will get rounding errors:
    ' "num = .45"  >> "num = .449999988079071
    ' "num = .45#" >> "num = .45"
    DIM exp1 AS LONG, num2 AS LONG
    exp1 = 10 ^ dp: num2 = num * exp1: round# = num2 / exp1
    PRINT num
END FUNCTION

Заимствовано из, qbasicnews.com

...