деректер түрлерін таңдау және оларды түсіну

Мен кейбір шағын жобаларда жұмыс істеп жатырмын және деректер түрлерін және оларды пайдалануды толық түсінбедім. Міне, мен күресіп жатқан нәрселер.

Қандай деректер түрін көрсету үшін қолданамын:

  • адамның жалақысы?
  • адамның туған күні
  • адамның аты?
  • адамның әлеуметтік қамсыздандыру нөмірі?
  • адамға тәуелді адамдар саны өздерінің салықтарын талап етеді?
  • Жердің салмағы

Деректер түрлеріне арналған қатты жыныстар бар ма?

0
Қандай бағдарламалау?
қосылды автор Nick Rolando, көзі
Бұл үй тапсырмасы сияқты біраз естіледі, оған homework тегіне қосуға болады ма?
қосылды автор JonH, көзі
Сіз өзіңіздің тіліңіздің онлайн нұсқасын таба аласыз, сіз сабақта өте ерте/int/float/string/bool үшін негізгі ақпаратты таба аласыз.
қосылды автор GodsCrimeScene, көзі

3 жауаптар

  • Ақша (жалақы): Decimal .
  • Туған күні: DateTime .
  • Атауы: String .
  • Әлеуметтік сақтандыру нөмірі: String .
  • Жердің салмағы: float немесе double .

Түсіндіру

Ақша

Ондық мән түрін айтарлықтай интегралды және бөлшек сандарды көп мөлшерде талап ететін қаржылық есептеулерге және дөңгелек қателерге жол бермеуге болады. Ондық түрі дөңгелектеу қажеттілігін жоймайды. Керісінше, ол қателерді дөңгелектеу есебінен азайтады. - MSDN

Ол сондай-ақ бүтін сан бола алмайды, себебі ондық бөлшек қажет ($ 59,9) және бүтін сандар біреуі болмайды, оны түрлендіру керек болады, мысалы: Сізге әрдайым оны әрдайым айналдырады: ((int) 7.001) == 8 - бұл true .

You won't use a string either. Text is just the wrong representation (quantifying Ақша does not result in a list of characters, right?). And you'd also like to run some math, I'm sure, and you cannot do that with strings directly because it's not numeric. E.g. 2 + 2 = 4. Try the same with strings: "2" + "2" = "22" (+ is overloaded: it adds for numerics and concatenates for strings).

Edit: My opinion of this has changed!.

Computers and floating points are notoriously complicated and even error-prone (if you do not know precisely what you're doing). I suggest to not use them for Ақша or anything precise & critical.

Мен толып кетпейтін бүтін сан түрін пайдалануды ұсынамын (еркін кодты пайдалану үшін BigInteger ) және оны қажет ең төменгі ажыратымдылықты көрсету үшін пайдаланыңыз. Мысалы: сіз АҚШ долларын цент ретінде көрсете аласыз, сондықтан 150 - 1.5 дегенді білдіреді. Дөңгелектеу қателіктері мен қорқынышты IEEE стандарттарынан аулақ бол! woohoo! плюс компьютерлер бүтін сандармен жылдамырақ болады, сондықтан әдетте жақсы нәтиже алуға мүмкіндік береді, әсіресе int пайдалануды басқара аласыз, яғни белгілі .

Phone Numbers & Security Number

Phone numbers and security numbers are called numbers, but really they're just a string of digits, aren't they? at least that seems the common perception. Well that already tells you: use a string.
You're also unlikely to use a phone number for mathematical operations? (although I do suppose summing up phone numbers would make one wild afternoon).

Туған күні

DateTime is the standard .NET type for dates, I'm sure there's no need to explain why, the Атауы is self-explanatory.

Атауы

Белгілі себептермен жол.

Салмақ

double or float are used to this kind of things. It depends on how much precision you want. Double gives you more, but the trade-off is that it takes more memory. It only makes a real difference when you have tons of them. My rule of thumb is to go with doubles unless I actually need to use a single/float. That being said, from my experience, almost every game that has something like that (a gravity force value, a Салмақ, and such) is usually a float and rarely a double. Sometimes the domain will give you a different rule of thumb while you're working in it.

Differences between float & double: link & another link.

3
қосылды
Жалпы мағына. Сізге бұл жолдың тек таңбалар екенін білу керек. int - ондық бөлшексіз, ондық, float, екі еселенген сан - ондық нүктесі бар. және осындай заттар. бұл атау үшін атауды пайдаланудың мағынасы ғана емес, себебі атау - тек таңбалар. жас (әдетте) тек қана инт. онда ондық бөлшек болады, сондықтан ондық/float/double.
қосылды автор MasterMastic, көзі
@krachleur Мен кешікпеймін: P (мен түсініктеме хабарламаңызды жіберіп алған жоқпын), бірақ мен қаржылық деректерді жақсарту үшін менің жауапымды қазір ғана жаңарттым. Егер сіз қаржылық деректермен жұмыс істеп жатсаңыз, оны тексеріп шығуды ұсынамын.
қосылды автор MasterMastic, көзі
Қаржы деректеріне ұқсас түсініктеме қажет маған үлкен рахмет,
қосылды автор krachleur, көзі
Кенге рақмет, бұл өте пайдалы болды. Олардың кейбіреулері DatyTime сияқты өте қарапайым, ал мен туралы басқаларға қатысты. Жақсы тәжірибе үшін сайт бар ма? Немесе сол ақылға қонымды нәрселердің бірі ғана ма?
қосылды автор chrisholdren, көзі

salary - use float or double; both represent decimal, the latter is double precision which you probably won't need since money usually only goes 2-3 decimal places
DoB - depends on language, most higher level languages have Date or DateTime object types, otherwise you might use a string or char array, or even create your own Date class
name - obviously string or char array
ssn - since is viewed as a string of characters (and also might have non-numeric characters '-') and not necessarily a value of magnitude, you can store this as a string or char array. Same goes for phone#
# of dependents - since can only be a whole number and never a decimal, use integer
weight - again can be represented by a decimal number, so float or double

1
қосылды
Түрлер бойынша іске асыру тіл мен осға тән болады. Бұл жалпыға ортақ жауап. Егер сіз өзіңіздің сұрағыңыздағы тіл туралы айтқыңыз келсе, біз нақты болуы мүмкін.
қосылды автор Nick Rolando, көзі

Әр сұраққа ұсынылған мәндер туралы ойланыңыз.

Жалақы - доллар мен цент түрінде ұсынылатын ақша (АҚШ-та кем дегенде), ондағы ондық/құбылмалы түрге қажет

Туған күн - қарапайым күн

Аты жолды білдіреді

Әлеуметтік қамсыздандыру нөмірі жолды білдіреді

Салықтар бойынша асыраушының саны бүтін сан болып табылады, себебі бұл тұтас сан

Жердің салмағы ондық/өзгермелі санның тағы бір түрі

Бұл үй тапсырмасы ма? Сіз сондай-ақ бағдарламалау тілдерінің қандай түрін айтпадыңыз, бірақ олар бұл түрлер болып табылады және әдетте strings, dates, numbers, decimals және т.б. тұрады.

0
қосылды