C# 在将int转换为double时,如何显示小数点和小数点后的两位?
给定123、1234和12345等值,我需要将它们分别转换为1.23、12.34和123.45 当我在textbox2中输入123、1234和12345时,会出现以下代码:C# 在将int转换为double时,如何显示小数点和小数点后的两位?,c#,math,compact-framework,windows-ce,.net-1.1,C#,Math,Compact Framework,Windows Ce,.net 1.1,给定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 我需要做什么才能得到想要的结果?请注意,这是一个
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
在进行除法之前,您正在将您的
原始值
整数转换为双精度。我看到您已经有了答案,但是
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位。格式将为您完成此操作
此外,使用事件处理程序,您的人员不必单击某些计算按钮