将 int 转换为双精度时,如何显示小数点和后面的两位
本文关键字:小数点 两位 显示 转换 int 双精度 何显示 | 更新日期: 2023-09-27 18:30:25
给定 123、1234 和 12345 等值,我需要将它们分别转换为 1.23、12.34 和 123.45
当我在 textbox2 中输入 123、1234、12345 时,此代码:
int originalVal = Convert.ToInt16(textBox2.Text);
double doubled = Convert.ToDouble(originalVal/100);
。给了我 1、12 和 123,而不是预期的 1.23、12.34 和 123.45。
我需要做什么才能获得预期的结果?请注意,这是一个使用VS2003和.NET 1.1的Windows CE/Compact Framework项目。
你正在做整数除法,因为originalVal
和100
本身都是整数。尝试:
originalVal/100.0
使用 100.0
使编译器生成浮点除法的代码。或者,这将具有相同的效果:
Convert.ToDouble(originalVal)/100
在进行除法之前将originalVal
整数转换为双精度。
double originalVal = Convert.ToDouble(textBox2.Text);
double doublePercented = originalVal/100D;
我看到你已经有了答案,但是...
private TextBox txtNumerator, txtDenominator, txtResult;
public MyClass() {
txtNumerator = new TextBox();
txtNumerator.TextChanged += new TextChangedEvent(TextBox_TextChanged);
txtDenominator = new TextBox();
txtResult = new TextBox();
}
private void TextBox_TextChanged(object sender, EventArgs e) {
double numerator = Convert.ToDouble(txtNumerator.Text.Trim());
double denominator = Convert.ToDouble(txtDemominator.Text.Trim());
if (denominator != 0) {
double result = numerator / denominator;
// Ref: http://www.csharp-examples.net/string-format-double/
txtResult.Text = string.Format("{0:0.00}", result);
} else {
throw new DivideByZeroException("Denominator can not be zero.");
}
}
您特别询问了如何将双精度提高到小数点后 2 位。String.Format 将为您做到这一点。
此外,使用事件处理程序,您的人员永远不必单击某些计算按钮。