Округление в Textbox?
Есть один калькулятор MBI, сейчас он выдаёт результат как "0,001408", например. Задача - округлять получаемый результат до вида "xx.x". Как это сделать? Код прилагаю
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 MBI
{
public partial class mainForm : Form
{
string weightToString;
double height;
double weight;
double MBICalc;
public mainForm()
{
InitializeComponent();
}
private void heightBox_TextChanged(object sender, EventArgs e)
{
weightToString = heightBox.Text;
height = Convert.ToDouble(weightToString);
}
private void weightBox_TextChanged(object sender, EventArgs e)
{
weightToString = weightBox.Text;
weight = Convert.ToDouble(weightToString);
}
private void calculateButton_Click(object sender, EventArgs e)
{
MBICalc = weight / (Math.Pow(height, 2));
result.Text = Convert.ToString(MBICalc);
;
}
// Blocking enter letters
private void heightBox_KeyPress(object sender, KeyPressEventArgs e)
{
char number = e.KeyChar;
if (e.KeyChar <= 47 || e.KeyChar >= 58)
{
e.Handled = true;
}
}
private void weightBox_KeyPress(object sender, KeyPressEventArgs e)
{
char number = e.KeyChar;
if (e.KeyChar <= 47 || e.KeyChar >= 58)
{
e.Handled = true;
}
}
}
}
Ответы (2 шт):
Автор решения: IOException
→ Ссылка
Для выполнения округления в c# есть метод Math.Round. Чтобы округлить до конкретного знака после запятой, можно использовать перегрузку этого метода, в которой в качестве второго аргумента нужно указать число знаков после запятой. Например, в вашем коде при установке значения в TextBox это будет выглядеть так:
result.Text = Convert.ToString(Math.Round(MBICalc, 1));//Где 1 означает 1 знак после запятой
Автор решения: Andrew
→ Ссылка
result.Text = $"{MBICalc:F2}";
result.Text = MBICalc.ToString("N2");
result.Text = Math.Round(MBICalc, 2).ToString();
4.Округление в ту или иную сторону
result.Text = Math.Round(inputValue, 2, MidpointRounding.AwayFromZero);