2012-07-06 5 views
2

У меня вопрос почти на две части. Во-первых, я пытаюсь отформатировать строку, которую я преобразовал в целое. У меня есть следующий код:Форматирование целого числа

If Idx2 = 0 Then  
    response.Write(sName & vbKeyTab & " E01 " & vbKeyTab & CInt(oSplit(1)) & "</br>") 
End If 

Это правильно отображает мое значение в oSplit(1) как 75. Я хотел бы, чтобы отобразить в 00075.00

Я попытался это, но я получаю ошибку 500:

Format(CInt(oSplit(1)), "00000.00") 

Мой второй вопрос о CInt на часть моего кода. Данные в моем массиве oSplit - это строка, и я отбрасываю ее на целое число. Однако кажется, что CInt округляет мои значения. Есть ли параметр, который я могу передать CInt, чтобы предотвратить это?

спасибо.

+0

Когда вы говорите, вы хотите, чтобы предотвратить rounding- вы имеете в виду, что вы хотите, чтобы предотвратить округление? т.е. 64,6 должны выдавать 00064,00. – BonyT

+0

@BonyT Правильно. Я хотел бы, чтобы '.05' отображался как' 00000.05', а не '00001.00'. – etm124

+0

err - это не то, что я положил - если вы хотите .05, чтобы показать как 00000.05, тогда вы имеете дело с десятичными знаками, а не целыми числами – BonyT

ответ

2

Чтобы справиться с .05, то вы хотите, чтобы преобразовать его в десятичное не Int:

Format(CDec(oSplit(1)), "00000.00") 
+0

В то время как преобразование в Decimal будет работать, оно подразумевает вещи, которые здесь не играют, и имеет больше накладных расходов, чем Single или Double. Вместо этого используйте CSng(). – Bob77

+0

или просто 'Val()' для варианта (и неявного преобразования 0) – Deanna

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