Unity¤Ë´ØÏ¢¤¹¤ëµ­»ö¤Ç¤¹

¡¡Unity ¤ä C# ¤Ë¤Ïfloat ·¿¤ÎÃͤò¾®¿ôÅÀÂ貿°Ì¤òÀÚ¤ê¼Î¤Æ¤·¤ÆÌ᤹¤È¤¤¤¦·×»»ÍѤΥ᥽¥Ã¥É¤Ï¤¢¤ê¤Þ¤»¤ó¡£

¡¡Mathf.Floor ¥á¥½¥Ã¥É¤ä Math.Trancate ¥á¥½¥Ã¥É¤Ï¡¢½èÍý¤Î»ÆºÙ¤Ï°Û¤Ê¤ê¤Þ¤¹¤¬¡¢´ðËÜŪ¤Ë¤Ï¾®¿ôÅÀ¤ÏÀÚ¤ê¼Î¤Æ¤«¡¢´Ý¤áÌܽèÍý¤Ë¤Ê¤ê¤Þ¤¹¡£
¤½¤Î¤¿¤á·×»»ÍѤΥ᥽¥Ã¥É¤ò¼«ºî¤µ¤ì¤Æ¤¤¤ëÊý¤â¿¤¤¤È»×¤¤¤Þ¤¹¤¬¡¢¤³¤³¤Ç¤Ï¡¢ÀÚ¤ê¼Î¤Æ·×»»ÍѤΥ桼¥Æ¥£¥ê¥Æ¥£¥¯¥é¥¹¤È·×»»¥á¥½¥Ã¥É¤ÎºîÀ®Îã¤òÄ󼨤¤¤¿¤·¤Þ¤¹¡£

¡¡ÀÚ¤ê¼Î¤Æ¤ò¤·¤¿¤¤¾®¿ôÅÀ¤Î·å¿ô¤ò»ØÄꤷ¤Æ·×»»¤Ç¤­¤ëÅÀ¤¬¥Ý¥¤¥ó¥È¤Ë¤Ê¤ê¤Þ¤¹¡£

using UnityEngine;

public static class CalcHelper
{
    /// <summary>
    /// ¾®¿ôÅÀ¤ò»ØÄꤷ¤¿·å¿ô¤ËÀÚ¤ê¼Î¤Æ¤ë
    /// </summary>
    /// <param name="value"></param>
    /// <param name="digitsNum"></param>
    /// <returns></returns>
    public static float FloorToDigits(float value, int digitsNum) {

        // Pow ¥á¥½¥Ã¥É¤ò»È¤¤¡¢10 ¤Î digitsNum Îß¾è¤ò¹Ô¤Ã¤Æ¡¢»ØÄꤵ¤ì¤¿·å¿ô¤Þ¤Ç¤ÎÀ°¿ô¤ËÊÑ´¹
        // Î㤨¤Ð¡¢value = 3.141592 ¤Ç digitsNum = 2 ¤Î¾ì¹ç
        // floorValue = 3.141592 * 100(10¤Î2¾è) = 314.1592 ¤È¤Ê¤ë
        float floorValue = value * Mathf.Pow(10, digitsNum);

        // ¾®¿ôÅÀ°Ê²¼¤òÀÚ¤ê¼Î¤Æ¤ë
        // Î㤨¤Ð¡¢floorValue = 314.1592 ¤Î¾ì¹ç¡¢floorValue = 314 ¤È¤Ê¤ë
        floorValue = Mathf.Floor(floorValue);

        // Pow ¥á¥½¥Ã¥É¤ò»È¤¤¡¢10 ¤Î digitsNum Îß¾è¤ò¹Ô¤Ã¤Æ¡¢»ØÄꤵ¤ì¤¿·å¿ô¤Þ¤Ç¤Î¾®¿ôÅÀ°Ê²¼¤ò»ý¤ÄÃͤËÌ᤹
        // Î㤨¤Ð¡¢digitsNum = 2 ¤Î¾ì¹ç¡¢floorValue = 314 / 100(10¤Î2¾è) = 3.14 ¤È¤Ê¤ë
        floorValue /= Mathf.Pow(10, digitsNum);

        // ¾åµ­3¹Ô¤ò1¹Ô¤Ç½ñ¤¤¤¿¾ì¹ç
        //float floorValue = Mathf.Floor(value * Mathf.Pow(10, digitsNum)) / Mathf.Pow(10, digitsNum);

        return floorValue;
    }
}

¡¡Â裱°ú¿ô¤Ë¤Ï·×»»¤·¤¿¤¤ float ·¿¤ÎÃͤò»ØÄꤷ¤Þ¤¹¡£Â裲°ú¿ô¤Ë¤ÏÀÚ¤ê¼Î¤Æ¤·¤Æ»Ä¤·¤¿¤¤¾®¿ôÅÀ¤Î·å¿ô¤ò»ØÄꤷ¤Þ¤¹¡£(ÀÚ¤ê¼Î¤Æ¤¹¤ë·å¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó)
Î㤨¤Ð¡¢digitsNum ¤ÎÃͤ¬ 2 ¤Ç¤¢¤ë¾ì¹ç¤Ë¤Ï¾®¿ôÅÀÂè3°Ì¤òÀÚ¤ê¼Î¤Æ¤·¤Æ¡¢Âè2°Ì¤Þ¤Ç¤ò»ý¤ÄÃͤËÊÑ´¹¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£



¡ã»ÈÍÑÎã¡ä


¡¡CalcHelper ¥¯¥é¥¹¤Ï¡¢»ØÄꤷ¤¿·å¿ô¤ËÀÚ¤ê¼Î¤Æ¤ë¥á¥½¥Ã¥É¤òÄ󶡤·¤Þ¤¹¡£
¤³¤Á¤é¤Ï´Êñ¤Ê»ÈÍÑÎã¤Ç¤¹¡£°Ê²¼¤ÎÎã¤Ç¤Ï¡¢¾®¿ôÅÀ¤ÎÂè3°Ì¤Þ¤Ç¤ò»Ä¤¹¤è¤¦¤ËÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£



¡ã¤½¤Î£±¡ä
float x = 0.5522f;
int digitsNum = 3;

x = CalcHelper.FloorToDigits(x, digitsNum);

Debug.Log(x);

¡ãConsole ¥Ó¥å¡¼¡ä
0.552



¡ã¤½¤Î£²¡ä
float x = 0.42f;
float y = 0.45f
int digitsNum = 1;

if(CalcHelper.FloorToDigits(x, digitsNum) >= 0.5f){

    Debug.Log("x");
} 

if(CalcHelper.FloorToDigits(y, digitsNum) >= 0.5f){

    Debug.Log("y");
} 

¡ãConsole ¥Ó¥å¡¼¡ä
x
y

¡¡¤³¤ÎÎã¤Ç¤Ï¡¢¾®¿ôÅÀ¤ÎÂè2°Ì¤òÀÚ¤ê¼Î¤Æ¡¢Âè1°Ì¤Þ¤Ç¤ÎÃͤòÊÝ»ý¤·¤Æ¤¤¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢x = 0.4f¡¢ y = 0.4f ¤È¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢Console ¥Ó¥å¡¼¤Ë¤Ï x ¤È y ¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£

¥³¥á¥ó¥È¤ò¤«¤¯


¡Öhttp://¡×¤ò´Þ¤àÅê¹Æ¤Ï¶Ø»ß¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

ÍøÍѵ¬Ìó¤ò¤´³Îǧ¤Î¤¦¤¨¤´µ­Æþ²¼¤µ¤¤

Menu



´ðÁÃ

µ»½Ñ/Ãμ±(¼ÂÁõÎã)

3D¥¢¥¯¥·¥ç¥ó¥²¡¼¥à

2D¤ª¤Ï¤¸¤­¥²¡¼¥à(ȯŸÊÔ)

2D¶¯À©²£¥¹¥¯¥í¡¼¥ë¥¢¥¯¥·¥ç¥ó(ȯŸÊÔ)

2D¥¿¥Ã¥×¥·¥å¡¼¥Æ¥£¥ó¥°(³ÈÄ¥ÊÔ)

¥ì¡¼¥¹¥²¡¼¥à(È´¿è)

2DÊüÃÖ¥²¡¼¥à(ȯŸÊÔ)

3D¥ì¡¼¥ë¥¬¥ó¥·¥å¡¼¥Æ¥£¥ó¥°(±þÍÑÊÔ)

3Dæ½Ð¥²¡¼¥à(È´¿è)

2D¥ê¥¢¥ë¥¿¥¤¥à¥¹¥È¥é¥Æ¥¸¡¼

3D¥¿¥Ã¥×¥¢¥¯¥·¥ç¥ó(NavMeshAgent »ÈÍÑ)

2D¥È¥Ã¥×¥Ó¥å¡¼¥¢¥¯¥·¥ç¥ó(¥«¥¨¥ë¤Î°Ù¤Ë¡Á¡¢¥Ü¥³¥¹¥«¥¦¥©¡¼¥ºÉ÷)

VideoPlayer ¥¤¥Ù¥ó¥ÈϢư¤Î¼ÂÁõÎã

VideoPlayer ¥ê¥¹¥ÈÆ⤫¤é¥à¡¼¥Ó¡¼ºÆÀ¸¤Î¼ÂÁõÎã(ȯŸ)

AR ²èÁüÉÕ¤­¥ª¥Ö¥¸¥§¥¯¥ÈÀ¸À®¤Î¼ÂÁõÎã

AR ¥ê¥¹¥ÈÆ⤫¤éÀ¸À®¤Î¼ÂÁõÎã(ȯŸ)

2D¥È¥Ã¥×¥Ó¥å¡¼¥¢¥¯¥·¥ç¥ó(¥µ¥Ð¥¤¥Ð¡¼É÷)

private



¤³¤Î¥µ¥¤¥ÈÆâ¤ÎºîÉʤϥæ¥Ë¥Æ¥£¤Á¤ã¤ó¥é¥¤¥»¥ó¥¹¾ò¹à¤Î¸µ¤ËÄ󶡤µ¤ì¤Æ¤¤¤Þ¤¹¡£

´ÉÍý¿Í/Éû´ÉÍý¿Í¤Î¤ßÊÔ½¸¤Ç¤­¤Þ¤¹