ºÇ½ª¹¹¿·¡§
orika_ex_miyako 2024ǯ02·î20Æü(²Ð) 12:10:19ÍúÎò
¡¡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 ¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£
- ¥«¥Æ¥´¥ê¡§
- ¿Ê³Ø/¥¹¥¯¡¼¥ë
- ¥×¥í¥°¥é¥ß¥ó¥°
¥³¥á¥ó¥È¤ò¤«¤¯