- じゃんぬねっと
- ぬし
- 会議室デビュー日: 2004/12/22
- 投稿数: 7811
- お住まい・勤務地: 愛知県名古屋市
|
投稿日時: 2007-03-14 13:27
小数点以下の判断しなければいけないという状況自体があまり好きではないですが、
コード: |
|
Dim value As Double = 37.564#
If value >= 0 Then
If value <> System.Math.Floor(value) Then
MessageBox.Show("小数あり")
Return
End If
Else
If value <> System.Math.Ceiling(value) Then
MessageBox.Show("小数あり")
Return
End If
End If
MessageBox.Show("小数なし")
|
適当に書いてみました。
VB6 の場合は、Int/Fix 関数に置き換わるだけです。
_________________ C# と VB.NET の入門サイト
じゃんぬねっと日誌
|
- じゃんぬねっと
- ぬし
- 会議室デビュー日: 2004/12/22
- 投稿数: 7811
- お住まい・勤務地: 愛知県名古屋市
|
投稿日時: 2007-03-14 13:35
引用: |
|
かめたろさんの書き込み (2007-03-13 15:06) より:
なんかの型にmodメソッドってのがあったような気もしますけど。
|
そうでしたっけ?
あ、java.math.BigInteger.mod メソッドのことでしょうか。
vjslib.dll なのでギリギリセーフですね。
_________________ C# と VB.NET の入門サイト
じゃんぬねっと日誌
|
- ぽぴ王子
- ぬし
- 会議室デビュー日: 2006/03/24
- 投稿数: 475
- お住まい・勤務地: お住まい:城・勤務地:城
|
投稿日時: 2007-03-14 14:08
引用: |
|
じゃんぬねっとさんの書き込み (2007-03-14 13:35) より:
引用: |
|
かめたろさんの書き込み (2007-03-13 15:06) より:
なんかの型にmodメソッドってのがあったような気もしますけど。
|
そうでしたっけ?
あ、java.math.BigInteger.mod メソッドのことでしょうか。
vjslib.dll なのでギリギリセーフですね。
|
SqlInt32.Mod メソッドとか
個人的にはじゃんぬさんの「小数点以下の判断しなければいけないという
状況自体があまり好きではない」に清き一票を投じたいところですが、とり
あえずフォーマットしちゃってから考えるというやり方もあるかもしれないと
か。
コード: |
|
fNBK = Format(vNBKRIT, "#,##0.00")
If fNBK.EndsWith(".00") = True Then
fNBK = fNBK.Substring(0, fNBK.Length - ".00".Length)
End If
|
いずれにしてもちょっとぐだぐだ感が抜けないところに自分の技量不足を感
じてしまいます orz
# これなら正規表現という手もありそうな気がするし…
_________________ ぽぴ王子@わんくま同盟
ぽぴ王子の人生プログラミング中 / ぽぴンち。
|
- じゃんぬねっと
- ぬし
- 会議室デビュー日: 2004/12/22
- 投稿数: 7811
- お住まい・勤務地: 愛知県名古屋市
|
投稿日時: 2007-03-14 14:23
引用: |
|
ぽぴ王子さんの書き込み (2007-03-14 14:08) より:
SqlInt32.Mod メソッドとか:)
|
その発想はなかったわ... SqlTypes...
他にも、SqlByte、SqlInt16、SqlInt64 などにも Mod メソッドはありますね。(確か)
# mod (←camel) メソッドは、さすがにないでしょうけど。
文字列にしても結局、元が double とかなので精度は良くはならないですね。
_________________ C# と VB.NET の入門サイト
じゃんぬねっと日誌
|
- ぼのぼの
- ぬし
- 会議室デビュー日: 2004/09/16
- 投稿数: 544
|
投稿日時: 2007-03-15 09:26
引用: |
|
ぽぴ王子さんの書き込み (2007-03-14 14:08) より:
とりあえずフォーマットしちゃってから考えるというやり方もあるかもしれないとか。
|
1.001を1と表示したいか1.00と表示したいかによりますよね。
引用: |
|
コード: |
|
fNBK = Format(vNBKRIT, "#,##0.00")
If fNBK.EndsWith(".00") = True Then
fNBK = fNBK.Substring(0, fNBK.Length - ".00".Length)
End If
|
|
これなら一行。
コード: |
|
fNBK = vNBKRIT.ToString("#,##0.00").Replace(".00", "")
|
|
- ぽぴ王子
- ぬし
- 会議室デビュー日: 2006/03/24
- 投稿数: 475
- お住まい・勤務地: お住まい:城・勤務地:城
|
投稿日時: 2007-03-15 10:04
引用: |
|
ぼのぼのさんの書き込み (2007-03-15 09:26) より:
1.001を1と表示したいか1.00と表示したいかによりますよね。
|
なるほど…
mod 演算子で振り分けると、1.001 は 1.00 側に倒れるんですね。
文字列に変換してから ".00" を削除すると、1.001 は 1 になると。
すっかり想定外でした。
引用: |
|
これなら一行。
コード: |
|
fNBK = vNBKRIT.ToString("#,##0.00").Replace(".00", "")
|
|
うわあああぁぁぁ、それで良かったぁぁぁ ○| ̄|_
なんだか改めて自分の技量不足を実感してしまったり。
参考になりました。ぼのぼのさんどうもありがとうございました。
_________________ ぽぴ王子@わんくま同盟
ぽぴ王子の人生プログラミング中 / ぽぴンち。
|