7
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Unity】型変換 string→int string→float float→int int→桁数指定してstring

Last updated at Posted at 2020-04-27

環境

Unity 2019.3.7f1

はじめに

私がよく使う型変換
・string→int
・string→float
・float→int
・int→桁数指定してstring

をまとめました。(覚えられない)

方法

・string→int
int型の変数 = int.Parse("数字の文字")

・string→float
float型の変数 = float.Parse("数字の文字")

・float→int
float→intに関しては2種類あります。

-(int)を使う-
int型の変数 = (int)数値 
小数点以下は切り捨てになります。

-Mathfを使用した変換-
切り上げ: int型の変数 = Mathf.CeilToInt(数値);
切捨て : int型の変数 = Mathf.FloorToInt(数値);
四捨五入: int型の変数 = Mathf.RoundToInt(数値);
RoundToIntに関して、
小数点が5の場合、偶数に近い方に変換されるため注意!

・int→桁数指定してstring
string型の変数 = 数値.ToString("000")
0の数で桁数が決まります。

具体例

・string→int

文字列の100をint型に変換後、計算できるか確認するため1を足してます。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class test : MonoBehaviour
{
    private int a;//int型の変数aを宣言
    
    void Start()
    {
        a = int.Parse("100");//文字列100を数値に変換し変数aに代入
        a = a + 1;//変数aに1を足してみる
        Debug.Log("a="+a);//コンソールに表示
    }
}

image.png

・string→float

文字列の1.111をfloat型に変換後、計算できるか確認するため1を足しています。
変換する文字列に「f」はつけないことに注意!!

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class test : MonoBehaviour
{
    private float a;//float型の変数aを宣言
    
    void Start()
    {
        a = float.Parse("1.111");//文字列1.111を数値に変換し変数aに代入
        a = a + 0.1f;//変数aに0.1を足してみる
        Debug.Log("a="+a);//コンソールに表示
    }
}

image.png

・float→int

-(int)を使う-

1.9999をint型に変換します。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class test : MonoBehaviour
{
    private int a;//int型の変数aを宣言
    
    void Start()
    {
        a = (int)1.9999f;//1.9999をint型に変換し変数aに代入
        Debug.Log("a="+a);//コンソールに表示
    }
}

小数点以下は切り捨てられ1になりました。
image.png

-Mathfを使用した変換-

切り捨て、切り上げ、四捨五入がありますが、
代表して一番ややこしい四捨五入を行います。
なにがややこしいかというと、小数点が0.5の時、偶数に近いほうに変換されます。
これはもう"四捨五入ではないなにか"です。
1.1、1.5, 1.9、2.1, 2.5, 2.9で処理してみましょう。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class test : MonoBehaviour
{
    private int a;//int型の変数aを宣言
    private int b;//int型の変数bを宣言
    private int c;//int型の変数cを宣言
    private int d;//int型の変数dを宣言
    private int e;//int型の変数eを宣言
    private int f;//int型の変数fを宣言

    void Start()
    {        
        a = Mathf.RoundToInt(1.1f);//1.1を四捨五入しint型に変換
        b = Mathf.RoundToInt(1.5f);//1.5を四捨五入しint型に変換
        c = Mathf.RoundToInt(1.9f);//1.9を四捨五入しint型に変換
        d = Mathf.RoundToInt(2.1f);//2.1を四捨五入しint型に変換
        e = Mathf.RoundToInt(2.5f);//2.5を四捨五入しint型に変換 計算結果注意
        f = Mathf.RoundToInt(2.9f);//2.9を四捨五入しint型に変換

        Debug.Log("a=" + a);//コンソールに表示
        Debug.Log("b=" + b);//コンソールに表示
        Debug.Log("c=" + c);//コンソールに表示
        Debug.Log("d=" + d);//コンソールに表示
        Debug.Log("e=" + e);//コンソールに表示
        Debug.Log("f=" + f);//コンソールに表示
    }
}

 
2.5の処理結果e=をみると2となっています。
このように私たちの感覚では2.5を四捨五入すると3になりますが、
偶数に近い側の2に変換されてしまいます。
image.png

・int→桁数指定してstring

10を三桁の文字列に変換します。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class test4 : MonoBehaviour
{
    private string a;//string型の変数aを宣言

    void Start()
    {        
        a = 10.ToString("000");//数値を桁数指定で文字列に変換
        Debug.Log("a=" + a);//コンソールに表示
    }
}

 
010の文字列となりました。
image.png

おわりに

・文字列から数値はParse
・floatからintはMathfを確認
・数値から桁数指定はToString
くらいの感じで覚えておけばすぐ対応できそうですね。

7
10
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?