この記事で紹介されている処理の逆の処理、整数部分と小数部分に分かれた文字列を数値に変換する方法は
こちらの記事を参照して下さい。
数値の入力 | 整数部の出力 | 小数部の出力 |
---|---|---|
1.582 | 1 | 582 |
24.28 | 24 | 28 |
1.0046 | 1 | 0046 |
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace ConvertSeparateIntegerDecimal
{
public partial class FormNumberToSeparateString : Form
{
public FormNumberToSeparateString()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
decimal inputValue = Convert.ToDecimal(textBox1.Text);
StringRealNumber srn = DecimalToStringRealNumber(inputValue);
textBox2.Text = srn.IntegerPart;
textBox3.Text = srn.DecimalPart;
}
public StringRealNumber DecimalToStringRealNumber(decimal value)
{
int IntPart = (int)Math.Truncate(value);
decimal DecimalPart = value - Math.Truncate(value);
StringRealNumber srn = new StringRealNumber();
srn.IntegerPart = Convert.ToString(IntPart);
if (DecimalPart > 0) {
string strDecimal = DecimalPart.ToString();
srn.DecimalPart = strDecimal.Split('.')[1];
}
return srn;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
namespace ConvertSeparateIntegerDecimal
{
public class StringRealNumber
{
private string _IntegerPart;
private string _DecimalPart;
public string IntegerPart
{
get
{
return _IntegerPart;
}
set
{
Regex reg = new Regex("^(|[0-9]*)$");
if (reg.Match(value).Success == true) {
_IntegerPart = value;
}
else {
throw new FormatException("設定する値が数値を表現してません。");
}
}
}
public string DecimalPart
{
get
{
return _DecimalPart;
}
set
{
Regex reg = new Regex("^(|[0-9]*)$");
if (reg.Match(value).Success == true) {
_DecimalPart = value;
}
else {
throw new FormatException("設定する値が数値を表現してません。");
}
}
}
public StringRealNumber()
{
IntegerPart = "";
DecimalPart = "";
}
}
}
IntegerPart
DecimalPart
プロパティの値をテキストボックスのTextプロパティに代入して画面に表示します。 private void button1_Click(object sender, EventArgs e)
{
decimal inputValue = Convert.ToDecimal(textBox1.Text);
StringRealNumber srn = DecimalToStringRealNumber(inputValue);
textBox2.Text = srn.IntegerPart;
textBox3.Text = srn.DecimalPart;
}
.
を区切り文字として分割し、後方の文字列を取り出す処理を実装しています。StringRealNumber
クラスのオブジェクトに代入して戻り値として返します。 public StringRealNumber DecimalToStringRealNumber(decimal value)
{
int IntPart = (int)Math.Truncate(value);
decimal DecimalPart = value - Math.Truncate(value);
StringRealNumber srn = new StringRealNumber();
srn.IntegerPart = Convert.ToString(IntPart);
if (DecimalPart > 0) {
string strDecimal = DecimalPart.ToString();
srn.DecimalPart = strDecimal.Split('.')[1];
}
return srn;
}