2015-10-23 4 views
-3

Код что-то, как показано ниже:дисплей Дважды значение в метке

private double val1; 
private int val2 =9; 
private void displayValue() 
{ 
     val1 = (val2/100); 
    text1.Text = val1.ToString("0.000"); 
} 

Я пытаюсь отобразить значение VAL1 (который на самом деле должно быть 0,09), но я всегда получаю результат «0.000» дисплей в моей text1. Кто-то, пожалуйста, помогите мне в том, как это сделать.

+2

Потому что '9/100' выполняет [целочисленное деление] (http://mathworld.wolfram.com/IntegerDivision.html), а результат _always_ будет' 0' не '0.9' независимо от того, какой тип вы его назначили. Это разделение всегда игнорирует дробную часть. Вы можете наблюдать за «val1», если вы отлаживаете свой код. Измените целочисленное деление на деление с плавающей запятой. Например, вы можете изменить свой тип 'val2' с' int' на 'double'. –

+0

попробуйте следующее: 'val1.ToString (« N2 »)' – wudzik

+0

'Val2/100d' должен дать вам то, что вы хотите –

ответ

0
you need to convert your val2 to double: 
private double val1; 
private int val2 =9; 
private void displayValue() 
{ 
    val1 = ((double)val2/100); 
    text1.Text = val1.ToString("0.000"); 
} 

дает выход в 0.0900

+0

спасибо очень много, я продолжаю искать способ его конвертировать и пробовать двойное (val2/100), но nvr делать так, как вы ... haha ​​ – NewBieS

+0

double (val2/100) это не поможет. Поскольку он сначала разделит val2 на 100 и даст результат как целое, а затем преобразуется в double. Таким образом, вы получите 0 в качестве вывода в этом случае. или вы можете попробовать val2/100.0 –

0

Это потому, что val2 объявлен как междунар. Вы можете бросить его перед использованием:

(двойной) val2

Или объявить как двойной

двойной val2

Я надеюсь, что это поможет.

Смежные вопросы