首页 > 解决方案 > “无法从字符串转换为双精度”

问题描述

请有人可以帮我解决以下问题。在最后一行中,我收到一条错误消息,指出我

无法从字符串转换为双精度

在前两行中有效。帮助将不胜感激。

DeltaY.Text = (Convert.ToDecimal(YCrd2.Text) - Convert.ToDecimal(YCrd1.Text)).ToString();

DeltaX.Text = (Convert.ToDecimal(XCrd2.Text) - Convert.ToDecimal(XCrd1.Text)).ToString();

Obs1Angle.Text = Math.Tan((Convert.ToDecimal(DeltaY.Text)) /
                          (Convert.ToDecimal(DeltaX.Text))).ToString();

标签: c#stringmath

解决方案


你应该TryParse用来防止你的字符串不是数字。

decimal DeltaYVal, DeltaXVal;
if (decimal.TryParse(DeltaY.Text, out DeltaYVal) && decimal.TryParse(DeltaY.Text, out DeltaXVal))
{
                Obs1Angle.Text = Math.Tan(DeltaYVal / DeltaXVal).ToString();
}

推荐阅读