ජාවාස්ක්‍රිප්ට් හි පාවෙන අංකයක් මුළු අංකයකට පරිවර්තනය කරන්නේ කෙසේද?


1135

ජාවාස්ක්‍රිප්ට් හි පාවෙන මුළු අංකයක් බවට පරිවර්තනය කිරීමට මම කැමතියි. ඇත්ත වශයෙන්ම, සම්මත පරිවර්තනයන් දෙකෙන් එකක් කරන්නේ කෙසේදැයි දැන ගැනීමට මා කැමතිය: කප්පාදු කිරීමෙන් සහ වටකුරු කිරීමෙන්. හා කාර්යක්ෂමව, නූල් බවට පරිවර්තනය කිරීම හා විග්‍රහ කිරීම හරහා නොවේ.


84
ඔබ එය නොදැන සිටියේ නම්, ජාවාස්ක්‍රිප්ට් හි ඇති සියලුම සංඛ්‍යා පාවෙන ඒවා වේ. පිරිවිතරයෙන්:
සමහර

6
4.3.20 අංක වර්ගය: වර්ගය අංකය යනු සංඛ්‍යා නියෝජනය කරන අගයන් සමූහයකි. ECMAScript හි, අගයන් සමූහය ද්විත්ව “නිර්‍මාණ 64-බිට් ආකෘතිය IEEE 754 අගයන් නියෝජනය කරයි.
සමහර

9
ඔව්, ජාවාස්ක්‍රිප්ටයට විශේෂිත “නිඛිල” වර්ගයක් නොමැත, නමුත් මෙම පරිවර්තනය සිදු කිරීම තවමත් සාමාන්‍ය දෙයක් නොවේ. උදාහරණයක් ලෙස, මගේ යෙදුමේ පරිශීලකයින් අංකයක් ටයිප් කර ඇත (සමහර විට ශත ද ඇතුළුව). මට ශත කපා කොට w / කොමාව පෙන්වීමට සිදු විය. පළමු පියවර වූයේ int බවට පරිවර්තනය කිරීමයි.
mcherm

1
එසේම ප්‍රයෝජනවත් වේ: සියලු ක්‍රමවල වේග සංසන්දනය jsperf.com/math-floor-vs-math-round-vs-parseint/33
c ..

1
arkarl: මම ක්ෂේත්‍රයකට ආදානය භාර ගන්නේ නම්, මා පිළිගන්නා චරිත පාලනය කිරීමට මට හැකි වනු ඇත, නමුත් පරිශීලක ආදානය පිළිගැනීම පමණක් නොව, ජාවාස්ක්‍රිප්ට් හි සියලු ආකාරයේ සැකසුම් මට කළ හැකිය. එසේ වුවද මට පේස්ට් සඳහා ආධාරක වැනි දේ සඳහා එය අවශ්‍ය විය හැකිය.
mcherm

Answers:


1658
var intvalue = Math.floor( floatvalue );
var intvalue = Math.ceil( floatvalue ); 
var intvalue = Math.round( floatvalue );

// `Math.trunc` was added in ECMAScript 6
var intvalue = Math.trunc( floatvalue );

ගණිත වස්තු යොමු කිරීම


උදාහරණ

ධනාත්මක
// value=x        //  x=5          5<x<5.5      5.5<=x<6  

Math.floor(value) //  5            5            5
Math.ceil(value)  //  5            6            6
Math.round(value) //  5            5            6
Math.trunc(value) //  5            5            5
parseInt(value)   //  5            5            5
~~value           //  5            5            5
value | 0         //  5            5            5
value >> 0        //  5            5            5
value >>> 0       //  5            5            5
value - value % 1 //  5            5            5
සෘණ
// value=x        // x=-5         -5>x>=-5.5   -5.5>x>-6

Math.floor(value) // -5           -6           -6
Math.ceil(value)  // -5           -5           -5
Math.round(value) // -5           -5           -6
Math.trunc(value) // -5           -5           -5
parseInt(value)   // -5           -5           -5
value | 0         // -5           -5           -5
~~value           // -5           -5           -5
value >> 0        // -5           -5           -5
value >>> 0       // 4294967291   4294967291   4294967291
value - value % 1 // -5           -5           -5
ධනාත්මක - විශාල සංඛ්යා
// x = Number.MAX_SAFE_INTEGER/10 // =900719925474099.1

// value=x            x=900719925474099    x=900719925474099.4  x=900719925474099.5

Math.floor(value) //  900719925474099      900719925474099      900719925474099
Math.ceil(value)  //  900719925474099      900719925474100      900719925474100
Math.round(value) //  900719925474099      900719925474099      900719925474100
Math.trunc(value) //  900719925474099      900719925474099      900719925474099
parseInt(value)   //  900719925474099      900719925474099      900719925474099
value | 0         //  858993459            858993459            858993459
~~value           //  858993459            858993459            858993459
value >> 0        //  858993459            858993459            858993459
value >>> 0       //  858993459            858993459            858993459
value - value % 1 //  900719925474099      900719925474099      900719925474099
සෘණ - විශාල සංඛ්‍යා
// x = Number.MAX_SAFE_INTEGER/10 * -1 // -900719925474099.1

// value = x      // x=-900719925474099   x=-900719925474099.5 x=-900719925474099.6

Math.floor(value) // -900719925474099     -900719925474100     -900719925474100
Math.ceil(value)  // -900719925474099     -900719925474099     -900719925474099
Math.round(value) // -900719925474099     -900719925474099     -900719925474100
Math.trunc(value) // -900719925474099     -900719925474099     -900719925474099
parseInt(value)   // -900719925474099     -900719925474099     -900719925474099
value | 0         // -858993459           -858993459           -858993459
~~value           // -858993459           -858993459           -858993459
value >> 0        // -858993459           -858993459           -858993459
value >>> 0       //  3435973837           3435973837           3435973837
value - value % 1 // -900719925474099     -900719925474099     -900719925474099

83
වෙනත් පිළිතුරක සඳහන් කර ඇති පරිදි, negative ණ-ආරක්ෂිත කප්පාදුවක් භාවිතා කළ හැකිය var intValue = ~~floatValue;. අංකනය ඔබේ රුචිකත්වයට වඩා අපැහැදිලි නම්, එය ශ්‍රිතයක් තුළ සඟවන්න : function toInt(value) { return ~~value; }. (මෙය කිරීමට ඔබ කැමති නම්, මෙය ද නිඛිල සංඛ්‍යාවක් බවට පරිවර්තනය කරයි.)
Keen

4
මෙම පිළිතුරට උදාහරණ ආදානය / ප්‍රතිදානය තිබේ නම් ඉහළට එනු ඇත.
ජේ. රැන්ඩම් කෝඩර්

7
අදහස් දැක්වීම සම්බන්ධයෙන් ~~ අගය බිට් අත්සන් කළ නිඛිල 32 කට සීමා කරන අතර Math.floor / ceil / round හට බිටු 53 ක් දක්වා හැසිරවිය හැකිය (අංක. MAX_SAFE_INTEGER 9007199254740991). පහත පිළිතුරෙහි මෙය සඳහන් කර ඇත, නමුත් මෙම අදහස් කියවන අය සඳහා මෙහි නැවත නැවත කිරීම වටී.
ජෝන්

2
ස්ථාන කිහිපයකින් පහතින් කියවන්න: Math.trunc(val);අදහස් දක්වන්න මෙය පිළිගත් පිළිතුර නිසා
ඕල්ඩ් බැඩ්මන් ග්‍රේ

වැනි අගයන් සඳහා නිශ්චිත නිරවද්‍යතාවයකින් ක්‍රියා නොකරයි2.3 - 2.3 % 1
Lapys

304

බිට්වේස් හෝ ක්‍රියාකරු

පාවෙන ලක්ෂ්‍ය සංඛ්‍යා කප්පාදු කිරීමට බිට්වේස් හෝ ක්‍රියාකරු භාවිතා කළ හැකි අතර එය ධනාත්මක මෙන්ම සෘණ සඳහාද ක්‍රියා කරයි:

function float2int (value) {
    return value | 0;
}

ප්රතිපල

float2int(3.1) == 3
float2int(-3.1) == -3
float2int(3.9) == 3
float2int(-3.9) == -3

කාර්ය සාධනය සංසන්දනය?

මම කාර්ය සාධනය සංසන්දනය කරන JSPerf පරීක්ෂණයක් නිර්මාණය කර ඇත :

  • Math.floor(val)
  • val | 0 bitwise හෝ
  • ~~val bitwise නැත
  • parseInt(val)

එය ක්‍රියාත්මක වන්නේ ධනාත්මක සංඛ්‍යා සමඟ පමණි. මෙම අවස්ථාවේදී ඔබ බිට්වේස් මෙහෙයුම් භාවිතා කිරීමටද ආරක්ෂිතයිMath.floor ක්‍රියාකාරීත්වය .

නමුත් ඔබේ කේතය ධනාත්මක මෙන්ම නිෂේධනීය දේ සමඟ වැඩ කිරීමට අවශ්‍ය නම්, බිට්වේස් මෙහෙයුම වේගවත්ම වේ (නැතහොත් කැමතිම ක්‍රමය). මෙම අනෙක් JSPerf පරීක්ෂණය අතිරේක සං sign ා පරීක්ෂාව නිසා එය පැහැදිලිව පෙනෙන තැනට සමාන කරයි ගණිතය දැන් මන්දගාමී වේ හතරෙන් වේ.

සටහන

අදහස් දැක්වීමේදී, BITWISE ක්‍රියාකරුවන් අත්සන් කරන ලද 32bit පූර්ණ සංඛ්‍යා මත ක්‍රියාත්මක වේ, එබැවින් විශාල සංඛ්‍යාවක් පරිවර්තනය වේ, උදාහරණයක් ලෙස:

1234567890  | 0 => 1234567890
12345678901 | 0 => -539222987

Ab ෆැබියෝපොලෝනි: ඔව් ඉතා සරලයි, බිට්වේස් ක්‍රියාකරුවන් වේගවත්ම බව පෙනේ. විශේෂයෙන් OR ක්‍රියාකරු සෑම විටම NOT හා ගණිත මෙහෙයුම් වලට වඩා වේගයෙන් ගැලපේ. නමුත් ඔබට negative ණ සංඛ්‍යා සඳහා සහය දැක්විය යුතු විට ගණිත මෙහෙයුම් මන්දගාමී වේ.
රොබට් කොරිට්නික්

9
fthefourtheye: අත්සන් නොකළ දකුණු මාරුව හැර අනෙක් සියලුම බිට්වේස් මෙහෙයුම්, අත්සන් කළ 32-බිටු සංඛ්‍යා මත ක්‍රියා කරයි. එබැවින් පාවෙන ලක්ෂ්‍ය අගයන් මත බිට්වේස් මෙහෙයුම් භාවිතා කිරීමෙන් ඒවා දශම ලක්ෂ්‍යයෙන් පසුව ඉලක්කම් ඉවත් කරන පූර්ණ සංඛ්‍යාවක් බවට පරිවර්තනය වේ.
රොබට් කොරිට්නික්

3
ඔබට එය ධනාත්මක සංඛ්‍යා සඳහා අවශ්‍ය Math.floor()නම් වේගවත් වේ (අවම වශයෙන් ගූගල් ක්‍රෝම් හි ඔබේ පළමු ජේඑස්පර්ෆ් පරීක්ෂණය , 30.0.1599.101 වෙළුම අනුව), වඩා ශක්තිමත් (එය බිටු වලින් සංඛ්‍යා නිරූපණය කරන්නේ කෙසේද යන්න මත රඳා නොපවතින නිසා, මෙම බිට්වේස් විසඳුම වෙනස් විය හැකි අතර බිඳ දැමිය හැකිය), සහ වඩාත්ම වැදගත් දෙය නම් වඩාත් පැහැදිලිය.
ma11hew28

8
බිට්වේස් ක්‍රියාකරුවන් බිට් අංක 32 මත ක්‍රියාත්මක වන බව සලකන්න. බිටු 32 ට ගැළපෙන තරම් විශාල සංඛ්‍යාවක් සඳහා ඒවා ක්‍රියා නොකරනු ඇත.
කැට්

2
~~වඩා හොඳ වන්නේ එය ඒකීය ක්‍රියාකරුවෙකු වන බැවිනි. 4.2|0+4සමාන 4නමුත් ~~4.2+4සමානයි8
Janus Troelsen

95

සටහන: Math.floor()කප්පාදු කිරීම වෙනුවට ඔබට ආදේශකයක් ලෙස භාවිතා කළ Math.floor(-3.1) = -4නොහැක-3 !!

කප්පාදු කිරීම සඳහා නිවැරදි ආදේශකයක් වනුයේ:

function truncate(value)
{
    if (value < 0) {
        return Math.ceil(value);
    }

    return Math.floor(value);
}

1
එය negative ණ සංඛ්‍යා සඳහා අපේක්ෂිත හැසිරීම මත රඳා පවතී. සමහර භාවිතයන්ට වඩා negative ණ අගයට (-3.5 -> -4) සිතියම් ගත කිරීමට negative ණ සංඛ්‍යා අවශ්‍ය වන අතර සමහර ඒවා කුඩා නිඛිලයට (-3.5 -> -3) සිතියම් ගත කිරීමට අවශ්‍ය වේ. පළමුවැන්න සාමාන්‍යයෙන් "බිම" ලෙස හැඳින්වේ. එක්කෝ හැසිරීම විස්තර කිරීමට "කප්පාදු කරන්න" යන වචනය බොහෝ විට භාවිතා වේ. මගේ නඩුවේදී, මම යන්නේ negative ණ සංඛ්‍යා පමණක් පෝෂණය කිරීමට ය. නමුත් මෙම ප්‍රකාශය negative ණ සංඛ්‍යා හැසිරීම් ගැන සැලකිලිමත් වන අයට ප්‍රයෝජනවත් අනතුරු ඇඟවීමකි.
mcherm

28
chamcherm: එවිට ඔවුන් “කප්පාදු කරන්න” යන පදය නිවැරදිව තේරුම් ගෙන ඇති බවක් නොපෙනේ. කප්පාදු කිරීම එහි නමට අනුව හරියටම කරයි: එය ඉලක්කම් කපා දමයි. එය කිසි විටෙකත් (සාමාන්‍ය අර්ථයෙන්) බිම හෝ සිවිලිමට සමාන නොවේ. en.wikipedia.org/wiki/Truncation
තනාටෝස්

5
Math.trunc(value)ECMAScript 6
4esn0k

3
floorවටය- truncateඅනන්තය දෙසට , වටය ශුන්‍ය දෙසට. ( ceilවට + අනන්තය දෙසට).
පීටර් කෝඩ්ස්

46

පාවෙන කොටස් කපා හැරීම සඳහා ද්විත්ව බිට්වේස් නොවන ක්‍රියාකරු භාවිතා කළ හැකිය. ඔබ සඳහන් කළ අනෙකුත් මෙහෙයුම් හරහා ලබා ගත හැකිය Math.floor,Math.ceil හා Math.round.

> ~~2.5
2
> ~~(-1.4)
-1

වැඩි විස්තර ජේම්ස් පැඩොල්සි අනුග්‍රහයෙනි.


1
නිෂ්පාදන කේතය සඳහා මෙය බොහෝ විට නරක දෙයක් විය හැකිය (එය අපැහැදිලි බැවින්) නමුත් එය හරියටම JS හි මගේ <canvas>අකුරු විදැහුම්කරණ එන්ජිම කේත ගොල්ෆ් කිරීම සඳහා අවශ්‍ය විය . ඔබට ස්තුතියි!
ක්‍රැගන් ජේවියර් සීටකර්

10
මෙය n | සමඟ ද කළ හැකිය 0.
ජේ ඩග්ලස්

17
එක් ක්‍රමයක් (~~ n හෝ n | 0) වැඩ කරන්නේ 2 ^ 31-1, හෝ 2147483647 දක්වා වූ අංක මත පමණි. 2147483648 හෝ ඊට වැඩි වැරදි ප්‍රති result ලයක් ලබා දෙනු ඇත; උදාහරණයක් ලෙස, 2147483647 | 0 ප්‍රතිලාභ -2147483648, සහ 4294967295 | 0 ප්‍රතිලාභ -1, එය අනිවාර්යයෙන්ම ඔබට අවශ්‍ය දේ නොවේ.
එඩ් බයියට්ස්

40

කප්පාදු කිරීම සඳහා:

var intvalue = Math.floor(value);

වටය සඳහා:

var intvalue = Math.round(value);

6
Math.floor negative ණ අගයන් කප්පාදු නොකරයි. ඉහත පිළිතුර බලන්න. නැතිනම් හොඳ පිළිතුරකි.
ඔලිගොෆ්‍රන්

ඔබ කාර්ය සාධනය ගැන උනන්දුවක් දක්වන්නේ නම් මම මෙහි කුඩා පරීක්ෂණ නඩුවක් තැබුවෙමි : jsperf.com/dsafdgdfsaf/2 (var | 0 මෙහි ජය).
සයිබොලික්

25

වටකුරු කිරීම සඳහා ඔබට parseInt ක්‍රමය භාවිතා කළ හැකිය . 0x (hex) සහ 0 (octal) උපසර්ග විකල්ප නිසා පරිශීලක ආදානය සමඟ ප්‍රවේශම් වන්න.

var intValue = parseInt(floatValue, 10);

1
වටකුරු, .සෙයිල් සහ .ෆ්ලෝර් යන සියල්ලම කරන්නේ, වටේට හෝ පහළට නොව, දශමයක පූර්ණ සංඛ්‍යා කොටස ඔබට අවශ්‍ය විට මෙය සැබවින්ම උපකාරී වේ.
යූදා ගේබ්‍රියෙල් හිමාන්ගෝ

1
... හුදෙක් කප්පාදු කිරීමේදී පවා මෙය මන්දගාමී ක්‍රමය බව පෙනේ. jsperf.com/float-to-int-conversion-comparison
රොබට් කොරිට්නික්

2
ඔබ අපේක්ෂා කරන පදනම සඳහන් කිරීමට 2 වන අගය විග්‍රහ කිරීමට සැමවිටම සමත් වන්න. එබැවින්, සෑම විටම 10 වන පදනම ලබා ගැනීම සඳහා parseInt (floatValue, 10)
Tim Tisdall

3
මෙය පැරණි වුවත්, මෙම ප්‍රශ්නය බොහෝ විට අසනු ලබන ප්‍රශ්නයක් බව පෙනේ, එබැවින් මම මෙය අනතුරු ඇඟවීමක් ලෙස මෙහි තබමි. එහි විශාලත්වය නිසා අගය “ඊ” අංකනය භාවිතයෙන් නිරූපණය කරන්නේ නම්, එහි ප්‍රති result ලය වනුයේ අපේක්ෂිත දේ නොව එක් ඉලක්කම් ය. උදාහරණයක් ලෙස, parseInt(1000000000000000000000, 10);1 හි ප්‍රති results ල 1, 000 1 000 000 000 000 000. කෙසේ වෙතත්, ප්‍රශ්නයට පැහැදිලිවම “ නූලක් බවට පරිවර්තනය කිරීම හා විග්‍රහ කිරීම ” අවශ්‍ය නොවීය, එය සාපේක්ෂව සුළු වුවත් ...;)
ක්වන්ටාස් 94 බර

4
Ant Qantas94Heavy මෙම හැසිරීමට හේතුව parseInt(), නූලක් එහි පළමු පරාමිතිය ලෙස සංඛ්‍යාවක් අපේක්ෂා නොකරන බැවිනි . ඔබ මෙම පූර්ණ සංඛ්යාමය සමත් විට, එය පරිවර්තනය කරනු 1e21පසුව parseIntවැල parses 1e21ෙහේතු වන, 1.
ඔලාෆ් ඩියෙට්ෂේ

18

බිට් මාරුව 0 කින් බෙදීම 1 ට බෙදීමට සමාන වේ

// >> or >>>
2.0 >> 0; // 2
2.0 >>> 0; // 2

4
කුඩා සටහන: >> 0පූර්ණ සංඛ්‍යා < 2 ^ 31-1>>> 0 සඳහා සහ පූර්ණ සංඛ්‍යා < 2 ^ 32-1 සඳහා පමණක් ක්‍රියා කරන බව පෙනේ . මෙය විශාල අගයන් සඳහා 0 ලබා දෙයි
රොමුවාල්ඩ් බ un නෙට්

Om රෝමල්ඩ් බ un නෙට්, ඔව්, ජාවාස්ක්‍රිප්ට් සියලු බිට්වේස් මෙහෙයුම් බිට් අංක 32 මත ක්‍රියාත්මක වන බව පැහැදිලිව අර්ථ දක්වයි. ඒක පිරිවිතර වල.
ඇලෙක්සිස් විල්කේ

ජාවාස්ක්‍රිප්ට් බිට්වේස් මෙහෙයුම් සිදු කරන්නේ ඉහත පිළිතුරක සඳහන් පරිදි 32bit (අත්සන් කළ) නිඛිල සමඟ පමණි. එබැවින් කිසිවක් නොකරන බව පෙනෙන ඕනෑම බිට්-මෙහෙයුමකට (0, හෝ 0 සමඟ මාරුවීමක්, සහ 1 සමඟ ද්විත්ව NOT වැනි) අගය 32bit int බවට පරිවර්තනය කිරීමට තවමත් Javascript පරිවර්තකය අවශ්‍ය වේ.
ෆ්‍රෑන්ක්ක්‍රම්නෝ

9

ඔබේ නඩුවේදී, ඔබට අවසානයේ නූලක් අවශ්‍ය වූ විට (කොමාව ඇතුල් කිරීම සඳහා), ඔබට Number.toFixed()ශ්‍රිතය භාවිතා කළ හැකිය , කෙසේ වෙතත්, මෙය වටකුරු කිරීමක් සිදු කරයි.


7

මෙහි බොහෝ යෝජනා තිබේ. බිට්වේස් හෝ දුරින් සරලම බව පෙනේ. Negative ණ සංඛ්‍යා සමඟ මෙන්ම මොඩියුලෝ ක්‍රියාකරු භාවිතා කරන තවත් කෙටි විසඳුමක් මෙන්න. බිට්වේස් වලට වඩා තේරුම් ගැනීම පහසුය හෝ:

intval = floatval - floatval%1;

මෙම ක්‍රමය '| 0' හෝ '~~' හෝ '>> 0' නිවැරදිව ක්‍රියා නොකරන ඉහළ අගය සංඛ්‍යාවක් සමඟ ද ක්‍රියා කරයි:

> n=4294967295;
> n|0
-1
> ~~n
-1
> n>>0
-1
> n-n%1
4294967295

ඔබ වෙනත් පිළිතුරක් වෙත යොමු කරන්නේ නම්, කරුණාකර ඒ සඳහා යොමු කිරීමක් එක් කරන්න හෝ එහි අදහස කෙටියෙන් සටහන් කරන්න.
බර්ට්

6

තවත් එක් ක්‍රමයක් - XOR ක්‍රියාකාරිත්වය භාවිතා කරන්න:

console.log(12.3 ^ 0); // 12
console.log("12.3" ^ 0); // 12
console.log(1.2 + 1.3 ^ 0); // 2
console.log(1.2 + 1.3 * 2 ^ 0); // 3
console.log(-1.2 ^ 0); // -1
console.log(-1.2 + 1 ^ 0); // 0
console.log(-1.2 - 1.3 ^ 0); // -2

බිට්වේස් මෙහෙයුම් වල ප්‍රමුඛතාවය ගණිත මෙහෙයුම් වලට වඩා අඩු නම් එය ප්‍රයෝජනවත් වේ. Https://jsfiddle.net/au51uj3r/ මත උත්සාහ කරන්න


5

කිරීමට ලුප්ත :

// Math.trunc() is part of the ES6 spec
Math.trunc( 1.5 );  // returns 1
Math.trunc( -1.5 ); // returns -1
// Math.floor( -1.5 ) would return -2, which is probably not what you wanted

කිරීමට වටය :

Math.round( 1.5 );  // 2
Math.round( 1.49 ); // 1
Math.round( -1.6 ); // -2
Math.round( -1.3 ); // -1

2

Mathජාවාස්ක්‍රිප්ට් හි ස්වදේශීය වස්තුව දෙස බැලුවහොත් , සංඛ්‍යා සහ අගයන් යනාදිය මත ක්‍රියා කිරීම සඳහා ඔබට සම්පූර්ණ කාර්යයන් රාශියක් ලැබේ.

මූලික වශයෙන් ඔබට කිරීමට අවශ්‍ය වන්නේ ජාවාස්ක්‍රිප්ට් හි තරමක් සරල හා ස්වදේශීය ය ...

ඔබට පහත අංකය ඇතැයි සිතන්න:

const myValue = 56.4534931;

දැන් ඔබට එය ළඟම ඇති අංකයට රවුම් කිරීමට අවශ්‍ය නම්, සරලවම කරන්න:

const rounded = Math.floor(myValue);

ඔබට ලැබෙන්නේ:

56

ඔබට එය ළඟම ඇති අංකයට රවුම් කිරීමට අවශ්‍ය නම්, කරන්න:

const roundedUp = Math.ceil(myValue);

ඔබට ලැබෙන්නේ:

57

Math.roundහුදෙක් වටයේ එය ඉහළ හෝ පහළ අංකය එක් සමීප flot සංඛ්යාව වන මත රඳා පවතී.

ඔබට ~~පාවෙන අංකය පිටුපස භාවිතා කළ හැකිය , එය පාවෙන මුළු අංකයක් බවට පරිවර්තනය කරයි.

ඔබට එය භාවිතා කළ හැකිය ~~myValue...


සමග ප්රවේශම් Plase විය ~~සංඛ්යාව int 32 සීමාව වඩා විශාල වේ නම්, එය int 32 සීමාව අගය කිරීමට වටිනාකම වෙනස් වනු ඇත නිසා.
මචාඩෝ

2

//Convert a float to integer

Math.floor(5.95)
//5

Math.ceil(5.95)
//6

Math.round(5.4)
//5

Math.round(5.5)
//6

Math.trunc(5.5)
//5

//Quick Ways
console.log(5.95| 0)
console.log(~~5.95) 
console.log(5.95 >> 0)
//5


0

මට අවශ්‍ය වන්නේ මුදල්මය වශයෙන් ඔබට අවශ්‍ය වන්නේ වටකුරු කිරීමට මිස කප්පාදු කිරීමට නොවේ. 4.999452 * 100 වටකුරු ඔබට 5 ක් ලබා දෙන බැවින්, සතයක්වත් ඉවතට යාම බොහෝ දුරට අඩු ය.

ඊට ඉහළින්, බැංකුකරුගේ වටය ගැන අමතක නොකරන්න , එය සෘජු වටය ලබා දෙන තරමක් ධනාත්මක නැඹුරුවකට එරෙහි වීමේ මාර්ගයකි - ඔබේ මූල්‍ය යෙදුමට එය අවශ්‍ය විය හැකිය.

ජාවාස්ක්‍රිප්ට් හි ගවුසියානු / බැංකුකරුගේ වටය


0

ඔබ angularjs භාවිතා කරන්නේ නම් පහත දැක්වෙන පරිදි සරල විසඳුමක් HTML අච්චු බන්ධනයේදී

{{val | number:0}}

එය අගය පූර්ණ සංඛ්‍යාවක් බවට පරිවර්තනය කරයි

docs.angularjs.org/api/ng/filter/number මෙම සබැඳිය හරහා යන්න

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.