Coder 发表于 2015-5-11 08:18:17

我从string到double的转换

大家好,这种从字符串到double的转换正确吗,或者有没有更好的重写方法?我正在使用WPF应用程序。这个想法是从Textbox1中获取值,并将其乘以2.75,然后在Textbox2中自动设置它。    private void textbox 1 _ text changed(对象发送方,TextChangedEventArgs e)。
{。
double d = 0;。
双倍,TryParse(文本框1,正文,out d);。
Textbox2,Text = (d * 2.75),ToString();。
}。
谢谢您。
**** Hidden Message *****

Coder 发表于 2015-5-11 08:25:14

你也可以使用转换,ToDouble方法,但是双倍。如果正确使用,TryParse方法是更好的方法:    private void textbox 1 _ TextChanged(object sender,TextChangedEventArgs e){。
double d = 0.0。
Boolean stringsivaliddouble = double,TryParse(文本框1,正文,out d);。
if(stringIsValidDouble)。
Textbox2,Text = (d * 2.75),ToString();。
}。

Coder 发表于 2015-5-11 08:46:32


谢谢安德烈布什曼的回复,你的修改真的很有帮助。
函数Convert.ToDecimal在WPF应用程序中不可用,因此我提到我正在使用WPF应用程序
,我只是想知道是否有任何更好的方法来编写代码,仅此而已。
非常感谢。

Coder 发表于 2015-5-11 09:03:37

你说得不对
使用系统
使用System.Windows
名称空间控制台应用程序1{
类程序{

静态void Main(字符串[]参数){
应用程序app=新应用程序()
窗口win=新窗口()
获胜。Loaded+=win_ Loaded
应用程序运行(win)
}
<div>静态void win_Loaded(对象发送方,事件参数e){
双温=123.45
字符串str=temp.ToString()
Double doubleValue=Convert。ToDouble(str)*100.0
窗口win=发送者作为窗口
如果(null!=win){
获胜。Title=doubleValue.ToString()
}
}
}
}

gile 发表于 2015-5-11 09:18:22

我仍然感到困惑

MexicanCustard 发表于 2015-5-11 09:30:41

我假设您使用
别名
作为系统名称空间。大概是这样的:



使用yourAliase = System
在这种情况下,请使用:



your aliase。convert . to double(str)


或者这个:



系统。Convert.ToDouble(str)系统。转换是在mscorlib.dll程序集中定义的。

Coder 发表于 2015-5-11 09:41:19


是的,在将系统命名空间添加到程序后有效
非常感谢。
我试图将程序集添加到程序中,但给了我一条消息,它说程序集将自动添加到. dll文件,但我需要之前

gile 发表于 2015-5-11 09:47:23

我知道。但我不知道你的项目已经做了什么。禁止自动加载公共DLL文件集是可能的。读一读这本书,它会对你有用的。

Coder 发表于 2015-5-11 11:12:26

Hi Coder,
也许你可以从。它使用Autodesk。在WPF控件中进行转换的AutoCAD.Runtime.Converter类。

Coder 发表于 2015-5-11 13:27:47

只需绑定到 Datacontext 中的双精度值即可,默认情况下,WPF 使用 ToString() 方法显示没有数据模板的数据。public class MyViewModel。
{。
public double MyDouble { get; set; }。
}。
      。
            。
            。
      。
实现INotifyPropertyChanged,您也可以将TextBoxTwo绑定到MyDouble, 有很多方法可以在没有数据转换的情况下剥这只猫的皮。
页: [1] 2
查看完整版本: 我从string到double的转换