小数点のある数字を整数にして変数に格納したい

質問です

テキストを取得で取得した小数点のある数字を整数にして変数に格納したいのですが
可能でしょうか

格納した変数値<10でフロー条件分岐をさせたいのですが
例えば
変数値(10.00)<10では
変数値が1.00にならないとFalseになってくれません

小数点を含む文字列を整数として扱うには、以下のように変換していきます。

左辺:整数型
右辺:CType(Double.Parse(文字列),I nt32)

0.99->1
1.00->1
1.01->1
1.49->1
1.50->2
1.51->2

こんな処理結果になります。

10判定で、1の時にしかFalseならないと言うのは、途中に変な箇所があるのではないかと思っています。

1 Like

テキストを取得で取得した小数点のある数字を整数にして変数に格納したいのですが
可能でしょうか

整数に変換する場合に小数点以下はどうすることを想定しているのでしょうか?
以下それぞれのやり方です。
※注意する箇所は4.の場合で、想定していない動きになる場合があります。

※以下valは小数点のある数値を想定しています。文字列の場合は、一旦Double.Parse(文字列)などで数値化する必要があります。

1.切り捨て(負の数の場合は小さい数にする場合)
Math.Floor(val)
例:1.5->1,-1.5->-2

2.切り捨て(単純に小数点以下はなかったことにする場合)
Math.Truncate(val)
例:1.5->1,-1.5->-1

3.切り上げ
Math.Ceiling(val)
例:1.5->2,-1.5->-1

4.四捨五入(最近接偶数への丸め(銀行家の丸め)(IEEE 754))
丁度0.5の場合、偶数の場合は切り捨て、奇数の場合は切り上げになる
Math.Round(val)
CInt(val)
CType(val, Integer)
CType(val, Int32)

例:1.4->1,1.5->2,2.4->2,2.5->2,2.51->3

5.四捨五入(一般的なイメージの四捨五入)
Math.Round(val,MidpointRounding.AwayFromZero)

例:1.4->1,1.5->2,2.4->2,2.5->3,2.51->3

>格納した変数値<10でフロー条件分岐をさせたいのですが
例えば
変数値(10.00)<10では
変数値が1.00にならないとFalseになってくれません

おそらく文字列として比較していると思われます。

“1.00” < “10” ->True
“5.00” < “10” ->False
“10.00” < “10” ->False

一度数値化してから比較すればよいかと思われます。

ご参考まで。

1 Like

小数から整数にするルールはどんな感じですか?
・小数点以下切り上げ→ Ceiling(Decimal)
・小数点以下切り捨て→ Floor(Decimal)
・四捨五入(および銀行丸め)→ Round(Decimal)

ちょっと面倒ですが、3段階でやる必要があります。
1、文字列を小数が扱える変数に代入
2、小数が扱える変数に入った値を整数に丸める
3、丸めた値を整数型の変数に代入(整数型として扱うならば必要)

切り捨ての場合はこんな感じです。
■全体
image
■個々のアクティビティ
image
image
image
■変数
image
※DoubleはSystem.Doubleで検索してください。

無事にできました!

ご教授いただいた方々ありがとうございました

2 Likes

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.